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