First feelings: Pros: * Feels fast * Powerful (you can do anything with it) Cons: * I don’t like it much * Gradle is very hackish * You need lots of best practices for someone else to be able to read your gradle build (what maven fixed from Ant) * I don’t like the settings.gradle file and the fact that you have to declare all your modules in it Thanks -Vincent
On 12 Apr 2017, at 17:49, Vincent Massol <[email protected]> wrote:
FWIW, I’ve done a first commit at https://github.com/xwiki/xwiki-commons/commit/de3b11c575720c34c32a9f16fe84e9...
I’m still unsure whether we should do this in master or not.
One issue is going to be the maintenance of dependencies between the Maven build and the Gradle build. Thus I think it might be better to move the gradle stuff into a branch and perform a move/rewrite the day we’re ready to switch.
WDYT?
Thanks -Vincent
PS: If you’re curious here are some typical Gradle builds: * https://github.com/hibernate/hibernate-orm/blob/master/build.gradle * https://github.com/mockito/mockito/blob/release/2.x/build.gradle * https://github.com/spring-projects/spring-framework/blob/master/build.gradle * https://github.com/groovy/groovy-core/blob/master/build.gradle
On 10 Apr 2017, at 21:31, Vincent Massol <[email protected]> wrote:
BTW I think we’ll need to think about exploring gradle in not too long.
Maven continues to stagnate while gradle is moving fast ahead.
One important feature of gradle is performance (see also https://blog.gradle.org/introducing-gradle-build-cache and https://blog.gradle.org/incremental-compiler-avoidance). Apparently it beats maven easily and that coud make things much nicer for us. The worrying point for me is the ability to find existing gradle plugins to replace the maven ones that we use.
What we could do is to commit the start of a gradle build in our SCM (starting with xwiki-commons) as a way to explore Gradle and see what’s missing compared to our current maven build. In other words, it would be a way to slowly start to learn Gradle.
WDYT?
Thanks -Vincent
PS1: FTR I did my first gradle build at https://github.com/xwiki-contrib/docker-xwiki/blob/master/build.gradle PS2: I’m worried about the smaller reliance on conventions in gradle than in Maven (as you can see from https://github.com/xwiki-contrib/docker-xwiki/blob/master/build.gradle, it doesn’t use any fixed structure and we’ll need plenty of best practices, it really reminds me of Ant…).