Replace Maven build with Gradle build

Details

Description

I like Maven dependency management.

However, it is increasingly evident to me that the Maven approach to the actual build, based on endless plugins and configurations, is not worthwhile. The only part that's necessary is the Maven Ant tasks, which encapsulate downloading dependencies, installing them, and deploying them to remote repositories.

Everything else worthwhile that Maven provides could be created as easily using Ant and perhaps a few Velocity templates. I'm willing to bet that the end result would work faster and take far less effort to maintain.

From my point of view (I know Maven 2 very well, but I never wrote an Ant script myself), Tapestry should keep a Maven 2 build. When I downloaded T5 source code, no need to read some documentation: mvn clean install and that's all. And what about mvn eclipse:eclipse (or other IDE configuration)?

Julien HENRY
added a comment - 04/Sep/07 07:04 From my point of view (I know Maven 2 very well, but I never wrote an Ant script myself), Tapestry should keep a Maven 2 build. When I downloaded T5 source code, no need to read some documentation: mvn clean install and that's all. And what about mvn eclipse:eclipse (or other IDE configuration)?
But you are the maintainer

Mark Shead
added a comment - 03/Mar/08 03:34 I would encourage you to keep the maven archetype up to date for the quickstart because I think it will help with getting people to try it out for the first time.

I honestly was impressed how easy it was to setup a project without reading more than a couple of sentences from the documentation website tutorial (Chapter 2: Your First Tapestry Application): mvn archetype:create and mvn jetty:run. Really awesome compared to many other ASF/ other OSS projects!

I didn't know anything about maven then. So while getting on the road with T5 I also learned to honor the powerful dependency management maven can do. And most important. My CVS/ SVN is light in sense of MB used by libraries copied into each and any project like our company did a few years ago.

I also realized that when I have a growing project - e.g. using axis2 now - the management seems to get a little more complex to eclipse (using 3.3 Europa). I sometimes now switch off the build automagically option to get away from waiting for the n th resolution of my build path.

I personally would keep tapestry mavenized. But I could imagine that with a few goals (don't know if that's the right term) one ant file and the eclipse/ IDE files could be generated and then in eclipse the maven plugin would not be needed.

Michael Gerzabek
added a comment - 06/Mar/08 12:39 I honestly was impressed how easy it was to setup a project without reading more than a couple of sentences from the documentation website tutorial (Chapter 2: Your First Tapestry Application): mvn archetype:create and mvn jetty:run. Really awesome compared to many other ASF/ other OSS projects!
I didn't know anything about maven then. So while getting on the road with T5 I also learned to honor the powerful dependency management maven can do. And most important. My CVS/ SVN is light in sense of MB used by libraries copied into each and any project like our company did a few years ago.
I also realized that when I have a growing project - e.g. using axis2 now - the management seems to get a little more complex to eclipse (using 3.3 Europa). I sometimes now switch off the build automagically option to get away from waiting for the n th resolution of my build path.
I personally would keep tapestry mavenized. But I could imagine that with a few goals (don't know if that's the right term) one ant file and the eclipse/ IDE files could be generated and then in eclipse the maven plugin would not be needed.

please keep the build on maven. that makes it so much easier for external users to just checkout the code and build (sometimes the easiest way to track down bugs and misconceptions). maven2 builds always work right out of the box, ant builds never does.

Eirik Maus
added a comment - 12/Mar/08 20:37 please keep the build on maven. that makes it so much easier for external users to just checkout the code and build (sometimes the easiest way to track down bugs and misconceptions). maven2 builds always work right out of the box, ant builds never does.

Erik; I think you are underestimating my ingenuity. I expect, via Ivy or the Maven Ant Tasks, to keep the useful part of Maven (download dependencies), but jettison using Maven to build. We'll still produce Maven artifacts, with a POM and everything.

Howard M. Lewis Ship
added a comment - 12/Mar/08 20:45 Erik; I think you are underestimating my ingenuity. I expect, via Ivy or the Maven Ant Tasks, to keep the useful part of Maven (download dependencies), but jettison using Maven to build. We'll still produce Maven artifacts, with a POM and everything.

Maven can certainly be a pain, although it is certainly more reliable/predictable these days than it used to be. Practices such as specifying version numbers of plugins (I think this will be a default in Maven 2.0.9 for Super POM plugins) can help. I do like mvn eclipse:eclipse or mvn idea:idea and the fact that, once you've learned Maven, you can pick up a new (OSS) project and know how to build it immediately.

Philip Lopez
added a comment - 12/Apr/08 04:19 +0.5 for keeping Maven around...
Maven can certainly be a pain, although it is certainly more reliable/predictable these days than it used to be. Practices such as specifying version numbers of plugins (I think this will be a default in Maven 2.0.9 for Super POM plugins) can help. I do like mvn eclipse:eclipse or mvn idea:idea and the fact that, once you've learned Maven, you can pick up a new (OSS) project and know how to build it immediately.

Still don't know why the change made a differenceTAP5-116: Set up a large heap size and PermGen space for tests across all projectsTAP5-116: Add note about potential problem with path names and spacesTAP5-116: Ignore the bin/ folder (output folder for Eclipse .classpath files generated by Gradle)TAP5-116: Replace Maven build with Gradle build