3 ms·
Because it fixes some of the problems of Maven, which was the defacto standard in the Java world, and is quite horrible. Gradle is to Maven what svn was to cvs.
by gozzoo 6y ago
Because it fixes some of the problems of Maven, which was the defacto standard in the Java world, and is quite horrible. Gradle is to Maven what svn was to cvs.
- pjmlp 6y agoWhat problems? The only one is XML allergy.
- jayd16 6y agoI've seen people claim Gradle is language agnostic and Maven isn't. Not sure I agree but its what I'm told...
- jdmichal 6y agoMaven defaults to Java, but I'm pretty sure there's compilation plugins for all the JVM languages.
- blktiger 6y agoSpeed - a gradle build computes hashes of all the build steps so it knows when to skip things that don’t need to be run. Spring converted their builds to gradle and were able to cut their builds from an hour to 10 minutes (full-ci bulds). https://spring.io/blog/2020/06/08/migrating-spring-boot-s-build-to-gradle https://spring.io/blog/2020/06/08/migrating-spring-boot-s-bu...
- pjmlp 6y agoAfter getting several GB allocated to the Gradle daemon and using SSDs, I would bet.
- gozzoo 6y agoActually XML is the smaler problem. Maven forces you to use a predifened structure for your project. The more some project deviates from Maven's assumptions about how it should be organized, the more complicated the pom file becomes. For each medium sized project I've seen it looks completely uncomprehendable. Usually there was only one member in the team who can touch it.
- pjmlp 6y agoWhich is a very good thing, Gradle is back into Ant cowboy land. Ever managed to understand Gradle complex files? There is a full application living there.
- gozzoo 6y ago> Ever managed to understand Gradle complex files? Well, there is a funny annecdote I can share. In some presentation a guy was showing how you can implemnent some non trivial functionality for a Android app. He was very proud to demonstrate how it can be implemented in just few lines of code. Then he showed casually just for few sec the gradle file for the demo app, which was about 50 lines. We were joking how simple and easy things can be as long you are gradle magician.
- twic 6y agoMaven is overly rigid. Years ago, i worked on a project where it made sense to have two integration test tasks - main tests and some special separate set of tests, i forget why. In Gradle, that's trivial. In Maven, it is impossible. You would have to write a new plugin which duplicates the existing integration test plugin to do it. Maven runs the stages of the build in a fixed order, defined by the plugin code. If you have a reason to run two stages in a different order, bad luck, that can't be done. There are tons of things like this.
- jdmichal 6y agoI'm pretty sure I've done this before... Maven is generally nothing more than some plugin executions with default configurations bound to specific phases. Both `surefire` and `failsafe` plugins allow you to configure the pattern of files executed (via `includes`). So you should be able to easily configure three executions, all with mutually-exclusive file patterns, one unit-test and two integration-tests. And you can choose whether or not to bind them to phases or run them manually.