Hi Roy,

Roy Pan <[email protected]> writes:

I would like to inquire whether anyone has experience or insights regarding
Java Gradle bootstrapping.

I just dug around the source a bit, and it’s going to be a long road. Even the very first v0.7 release appears to be self-hosting, with a handmade gradle-wrapper.jar of unknown provenance in the source repo. So you’re going to have to start by reverse engineering how that was crafted and create a proper build mechanism. From there, it should be possible to build successive versions with the previous bootstrapped one.

Modern Gradle uses Kotlin, which is also not in Guix, because modern Kotlin needs Gradle to build. Kotlin 1.0.0 appears to have built with Ant, so that is likely manageable. But once you get to Kotlin needing Gradle (or vice versa), you have to carefully alterante which link in the bootstrapping chain uses what from the other.

Gradle is widespread, so there are likely to be other dependencies with the same problem, though I suspect Kotlin is the worst of it.


In my opinion, the early stages are quite complex, but by the later stages, the process can largely be automated. The early stages mainly involve
issues related to Ivy and Ant.

I strongly suspect it’s the middle that is going to be the hard part. That, and making Gradle actually useful within Guix, ex. with a gradle-build-system.

 -- Ian

Reply via email to