spring-boot-admin
spring-boot-admin copied to clipboard
Migrate SBA to Gradle build tool
The venerable Ant build tool, hugely customisable with its custom tasks, finally gave way to the modern Maven ecosystem. That's natural evolution. New needs, new tools. History repeats, and Gradle builds upon all the goodness of Maven and includes many advanced (and more importantly useful) features like build-cache, parallel execution, Gradle daemons etc. Many major OSS vendors have switched after tasting the goods, Spring Boot included.
This enhancement request is to migrate SBA to a Gradle based build system.
Would be glad to submit a PR when you want to migrate.
Personally I'm not that much used to gradle and prefer maven. Also the comparison of maven is to ant as gradle is to maven imho doesn't work.
Migrating to gradle is a lot of effort as automated build and release process (including signing of the artifacts) would be affected.
Could you elaborate a bit on the advantages we would have using gradle? I'm currently not convinced if we should take this step.
IMHO, if we look from the perspective of "What's the cost of not doing it?" the answer is clearly a zero in the perceivable future. Again, from the perspective of "If it's not broken, why fix it?" the answer is clearly to stay with Maven. I'm with you on that, and moreso from the perspective of being the project owner and your own familiarity with Maven. Finally, we are talking about the build tool here and not SBA itself per se, so no real need to jump ship.
tl;dr
-
[x] SBA has gained good traction in the market, people love it, and now with SBA going cloud native into the K8s world, its natural that interest in SBA would go north. More people are expected to take interest in SBA's roadmap and contribute.
-
[x] Future contributors to SBA are expected to have a natural sway towards Gradle - just because they probably started their careers with Gradle. But honestly, I would think, the tooling itself (build tool, version control tool, code coverage tool etc.) should not matter most in the product. Bad analogy perhaps, but I don't use Ant or CVS/SVN for my new projects either.
-
[x] Now from an SBA developer's perspective, I like blazing fast builds, let's say sometimes a tenth of typical Maven builds - I would love that. Gradle build cache, parallel builds all help towards this. Scan reports are awesome. The HTML dependency graph is awesome. Generating jacoco aggregate reports is a breeze. Gradle plays really nice with Maven - no heartache with Maven at all. Every single artifact produced is 100% compatible with Maven built artifacts.
-
[x] I would love to see superior transitive dependency management and not allow dependencies to leak into the caller. Not that SBA leaks dependencies right now. But Gradle's approach is much superior when it comes to transitive dependency management.
-
[x] The Spring Boot ecosystem itself has embraced Gradle wholeheartedly - not that SBA needs to toe Spring Boot's line, but I would think @dsyer did give it a good hard look before adopting Gradle - I haven't talked to Dave on this yet though.
-
[x] A very rich set of more modern equivalents of Maven plugins are readily available.
Challenges with the migration
- Codebase structure might have to change slightly
- Build and automation scripts need to change. Will work with Travis CI and Coveralls just fine though.
The rewards of migration
- Be future ready
- Build speed enhancements for SBA
- Adopt a superior build tool
Any takers?
(PS: Disclaimer - I'm not associated with the Gradle project or Gradle Inc. in any way whatsoever)