Hello Everyone,
We recently switched Apache OFBiz from Ant to Gradle and it was an
amazing experience. I was the main developer working on the transition
and I think if something so complex and wired up with hundreds of
libraries like OFBiz can do it, then I think it would be a much more
pleasant experience with FreeMarker.
Transitioning to Gradle, however, requires a shift of the way you think,
it is not an imperative style of "do this then do that" and it has
multiple build phases (initialization, configuration and execution).
Gradle is also subject to frequent changes more than ant or Maven. For
example, in versions 3+ the left shift operator "<<" was deprecated even
though heavily used in projects and is subject for total removal in
version 5.
Overall, I would say between the three build systems, Gradle is the most
powerful hands down as it mixes the convention-over-configuration
philosophy of maven while at the same time allowing overriding any
configuration setting. It also provides a powerful DSL on top of a full
programming language (Groovy)
If you folks would like to proceed with the transition, and need extra
hands, I'd love to help however I can.
Cheers,
Taher Alkhateeb
On 2016-12-31 02:43 (+0300), Daniel Dekany <d...@freemail.hu> wrote:
> Friday, December 30, 2016, 11:44:35 PM, Apache wrote:>
>
> > I\u2019m not sure what \u201cfuture-proof\u201d means.>
>
> By that I mean that if we have to do something non-standard, it's>
> probably easier to achieve with Gradle.>
>
> Also, if we include FM2 in this, then we surely has to do non-standard>
> things. In FM2 the resulting freemarker.jar has to be the same>
> monolithic jar, etc.>
>
> Last not least, if someone is interested in Gradle, and so wants to>
> tackle this task, then I believe we should just go for Gradle.>
> Especially as it can be started right now with FM2, while with Maven,>
> he had to wait until FM3 gets somewhere.>
>
> -- >
> Thanks,>
> Daniel Dekany>
>
>
> > Maven is basically the standard the other build tools have to be>
> > compatible with. The Maven team has been discussing ways to enhance>
> > the pom.xml to open up new features for quite some time and do seem>
> > to be making some progress.>
> >>
> > The big downside with an Ant build is that everything is custom.>
> > Maven takes the opposite approach - everything is standard, while>
> > Gradle is somewhere in the middle.>
> >>
> > Ralph>
> >>
> >> On Dec 30, 2016, at 2:05 PM, Daniel Dekany <dd...@freemail.hu>
wrote:>
> >> >
> >> I think recreating the Ant build of FM 2 in Gradle (with nearly>
> >> identical output) would be a good start. For starters, it's useful
in>
> >> itself, like it makes FM 2 look less ancient. (-; It's parhaps also>
> >> useful if we want to become Android friendly. Then, it will be
easier>
> >> to proceed with a modular Gradle build in FM 3. (I'm leaning towards>
> >> Gradle as opposed to Maven because it gives us more flexibility, so>
> >> it's more future proof. As history has shown, FreeMarker often needs>
> >> that.)>
> >> >
> >> If you or anyone else feels like playing with the FM2 Ant to Gradle>
> >> conversion, go ahead!>
> >> >
> >> >
> >> Thursday, September 22, 2016, 1:08:18 PM, Mauricio Nu%uFFFDez wrote:>
> >> >
> >>> Hi Daniel,>
> >>> >
> >>> Thanks for your feedback. I'm pushing to my personal github. I
have a>
> >>> parent pom with a submodule core and a submodule ext. I want to
check>
> >>> alternatives for the different artifacts. Maybe with reflection, as>
> >>> suggested by the previous effort, or retrotranslator.>
> >>> >
> >>> https://github.com/mauronunez/incubator-freemarker/tree/maven (
my fork,>
> >>> branch "maven" )>
> >>> >
> >>> I have more experience with maven, but I think this as
intermediate step>
> >>> for Gradle.>
> >>> About maven for FM2, yes, I agree with to keep it as is, not
impacting>
> >>> users. I want to contribute my changes to FM3, but now, FM2 it's
a good>
> >>> codebase to test, and to be more involved as developer.>
> >>> >
> >>> Btw, I've create a pull request to fix some Junit tests.>
> >>> >
> >>> Regards,>
> >>> >
> >>> Mauricio>
> >>> >
> >>> 2016-09-21 14:49 GMT-03:00 Daniel Dekany <dd...@freemail.hu>:>
> >>> >
> >>>> 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%uFFFDez
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>
> >>>> >
> >>>> -->
> >>>> Thanks,>
> >>>> Daniel Dekany>
> >>>> >
> >>>> >
> >> >
> >> -- >
> >> Thanks,>
> >> Daniel Dekany>
> >> >
> >> >
> >>
> >>
> >>
>
>