David, Thanks you, I will check Moqui and Ofbiz to learn about Gradle usage. I want to dedicate some time to apply this to FM, as a proposal, considering Daniel's comments.
Regards, Mauricio 2016-09-22 15:33 GMT-03:00 David E Jones <[email protected]>: > > I've been using Gradle extensively for a few years now and it's a great > tool. Basic builds following standard Maven directory > structures are very easy, but it is flexible enough to do anything you can > imagine (from my experience so far anyway...). > > Dependency management is very good, with lots of options to manage > transitive dependencies and such. There is even a handy plugin to > check for updates to dependencies. More generally the combination of > scripting tasks using Groovy and a wide variety of plugins > makes it a very powerful tool. I imagine a lot of the same things can be > done with Maven, but I doubt as much or as conveniently (I > don't have as much experience with highly custom Maven builds to compare > though). > > Gradle allows you to set the Java version to compile for > (targetCompatibility and sourceCompatibility fields), and though I haven't > tried it you should be able to build for multiple Java versions with no > issues in different modules or maybe even in the same module > with different build tasks. > > There is pretty good support for running ant tools as well, a nice > fallback for things that are easier in Ant. I used that quite a > bit early on with Gradle, but rarely do so now as Gradle has good ways of > doing most anything. > > One downside to Gradle is that it is much heavier than Ant in terms of > system resources on your dev machine. For me this isn't > generally a big deal, and while the Gradle Daemon makes stuff build just > as fast as Ant it hogs some memory (only an issue on my > little travel laptop which has more limited memory). > > I don't think this sort of thing will be a big deal for FreeMarker, but in > Moqui Framework (and more recently in Apache OFBiz) > Gradle is used to handle more complex multi-module builds including > handling modules dropped in and 'auto discovered' using a little > method in the settings.gradle file, plus in Moqui things like > automatically getting dependent components (a framework level thing, > not a Java thing) using configuration in XML files that are framework > specific using the convenient XML parsing and such that is > part of Groovy. > > In short I'd highly recommend Gradle. The documentation for the API and > such is good and these days there are lots of people using > it so there are many plugins available and you can find solutions to just > about anything with a little googling. > > -David > > > On Wed, 2016-09-21 at 19:49 +0200, Daniel Dekany wrote: > > Hi, > > > > In FreeMarker 3 we want to modularize the project, so that there will > > be at least a freemarker-core and then a separate artifacts for each > > extension (like freemarker-jsp, etc.). Thus so far I agree with what > > you are doing. If it can be done with FreeMarker 2 though, I'm not > > sure, because we have to keep strict backward compatibility there, and > > also we have to consider how much hassle such a change causes for the > > users. (There are orders magnitude more users than contributors. > > Something that's nice for the contributors might bears no value for > > the users, or even just makes dependency management more fragile for > > them.) > > > > As of a monolithic Maven build (where the point is to migrate away > > from Ant and make the build more "standard"), there was such activity, > > but it didn't get far enough so far: > > https://issues.apache.org/jira/browse/FREEMARKER-7?jql= > project%20%3D%20FREEMARKER > > > > The main problem is that in FreeMarker it happens now and then that we > > have to depend on multiple versions of the same artifact (or on > > multiple versions of the Java platform). Ant can handle that, but > > Maven... well, perhaps if we extract parts that are above the baseline > > platform (Java 5 currently, but let's say Java 6) into separate > > artifacts, like freemarker-core-java-8 and such, but that won't be > > backward compatible as users had to depend on them explicitly (I > > guess), and even if we consider FreeMarker 3, it might complicates the > > life of users. So perhaps we have to look into using Gradle. (Gradle > > can be also handy if we want to target Android, and with in FreeMarker > > 3 we surely should.) > > > > Also, there are quite a few extra steps and extra tasks, if you look > > into the build.xml. Though I guess most of them can be reimplemented > > in Maven gradually, and we can keep the Ant build until it's done... > > > > > > Tuesday, September 20, 2016, 10:03:56 PM, Mauricio Nuñez wrote: > > > > > > > > Hi all, > > > > > > I'm a older user of freemarker, from version 1. Today, I'm working in a > > > maven pom.xml for freemarker. Freemarker is very valuable for me, and > I > > > want to contribute. My old web site ( www.chile.com ) is down now, > but it > > > was developed with freemarker about 2002-2003. > > > > > > I'm using a maven plugin for javacc, and this build is working. I have > some > > > issues with some JUnit tests, but I'm working in that ( I guess the > problem > > > is related to my Locale ) > > > > > > But my approach is to create a base freemarker project, and a second > > > project, related to extensions ( jython, servlet, etc ). Before > continue, I > > > want some comments from you. > > > > > > Regards, > > > > > > Mauricio >
