69 messages in org.codehaus.groovy.devRe: [groovy-dev] Building Groovy
FromSent OnAttachments
Russel WinderOct 6, 2008 4:36 am 
MingfaiOct 6, 2008 4:47 am 
Hans DockterOct 6, 2008 4:50 am 
Hans DockterOct 6, 2008 4:55 am 
Jochen TheodorouOct 6, 2008 4:56 am 
Guillaume LaforgeOct 6, 2008 7:17 am 
Hans DockterOct 6, 2008 7:51 am 
Russel WinderOct 6, 2008 7:59 am 
Guillaume LaforgeOct 6, 2008 8:19 am 
Guillaume LaforgeOct 6, 2008 8:25 am 
MingfaiOct 6, 2008 8:28 am 
Guillaume LaforgeOct 6, 2008 8:36 am 
Hans DockterOct 6, 2008 1:46 pm 
Guillaume LaforgeOct 6, 2008 1:54 pm 
Hans DockterOct 6, 2008 1:54 pm 
Jochen TheodorouOct 6, 2008 2:03 pm 
Guillaume LaforgeOct 6, 2008 2:09 pm 
Paul DuffyOct 6, 2008 7:06 pm 
Luke DaleyOct 6, 2008 8:47 pm 
Guillaume LaforgeOct 6, 2008 9:44 pm 
Russel WinderOct 6, 2008 11:25 pm 
Russel WinderOct 6, 2008 11:54 pm 
Russel WinderOct 7, 2008 12:03 am 
Jason DillonOct 7, 2008 12:23 am 
Russel WinderOct 7, 2008 12:24 am 
Guillaume LaforgeOct 7, 2008 12:30 am 
Hans DockterOct 7, 2008 12:35 am 
Jason DillonOct 7, 2008 12:35 am 
Hans DockterOct 7, 2008 12:36 am 
Jason DillonOct 7, 2008 12:41 am 
Guillaume LaforgeOct 7, 2008 12:54 am 
Jason DillonOct 7, 2008 1:40 am 
Guillaume LaforgeOct 7, 2008 1:50 am 
Jason DillonOct 7, 2008 1:55 am 
Guillaume LaforgeOct 7, 2008 2:25 am 
Guillaume LaforgeOct 7, 2008 2:35 am 
Jason DillonOct 7, 2008 3:09 am 
Guillaume LaforgeOct 7, 2008 3:12 am 
Russel WinderOct 7, 2008 3:17 am 
Jason DillonOct 7, 2008 3:24 am 
Paul KingOct 7, 2008 4:04 am 
ma...@dockter.bizOct 7, 2008 4:19 am 
ma...@dockter.bizOct 7, 2008 4:25 am 
Jason DillonOct 7, 2008 4:36 am 
Jason DillonOct 7, 2008 4:39 am 
Jochen TheodorouOct 7, 2008 5:20 am 
Jason DillonOct 7, 2008 8:19 am 
Jochen TheodorouOct 7, 2008 9:51 am 
Jason DillonOct 7, 2008 10:49 am 
Jochen TheodorouOct 7, 2008 12:03 pm 
Hans DockterOct 7, 2008 2:34 pm 
Luke DaleyOct 7, 2008 3:52 pm 
Jason DillonOct 8, 2008 1:28 am 
Jason DillonOct 8, 2008 1:35 am 
Hans DockterOct 8, 2008 3:11 am 
Hans DockterOct 8, 2008 3:49 am 
Hans DockterOct 8, 2008 4:30 am 
Hans DockterOct 8, 2008 4:40 am 
Jason DillonOct 8, 2008 4:52 am 
Jason DillonOct 8, 2008 5:21 am 
Jochen TheodorouOct 8, 2008 6:23 am 
Jochen TheodorouOct 8, 2008 6:47 am 
Jochen TheodorouOct 8, 2008 6:59 am 
Hans DockterOct 8, 2008 8:33 am 
Hans DockterOct 8, 2008 8:43 am 
Paul DuffyOct 9, 2008 8:58 am 
Paul KingOct 9, 2008 1:15 pm 
Danno FerrinOct 9, 2008 1:27 pm 
Paul KingOct 10, 2008 2:31 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [groovy-dev] Building GroovyActions...
From:Hans Dockter (ma@dockter.biz)
Date:Oct 8, 2008 8:33:40 am
List:org.codehaus.groovy.dev

On Oct 8, 2008, at 2:21 PM, Jason Dillon wrote:

On Oct 8, 2008, at 6:30 PM, Hans Dockter wrote:

On Oct 7, 2008, at 5:19 PM, Jason Dillon wrote:

First you don't need to deploy anything to use a plugin, you can include the plugin in your reactor build and you are fine.

That's the way I have done it always with Maven. I'm not sure if I would call it 'fine'. It forces a single project build to become a multi-project build. It is another layer in the bizarre amount of indirections Maven imposes onto its users.

Or if you build is so simple then just use an plugin which you can embed into a single pom.xml, like antrun, gmaven, jruby, etc. There is no bizarre indirection here, just misconceptions or lack of understanding.

Single project build does not mean simple build. The gradle build is so far a single project build. Nonetheless it has the build script plus 15 classes for expressing the build logic. You don't want to put the content of 15 classes in a pom.xml, do you? I'm slightly annoyed by your constant claim that I have a lack of basic understanding in regard to Maven or tell something about Maven which is factual untrue. There hasn't been a single issue were you could prove this (except the naming of the enforcer plugin ;)). I have been the build master for very complex Maven builds. I know what I'm talking about. For example for me it is also a bizarre level of indirection if I need 20 lines of XML to call a simple ant task. May be you call this straight forward. Fair enough. We interpret things differently. This disagreement does not mean that you or me does not know how Maven works.

Second, using scripting tools like GMaven (or the JRuby plugin or whatever) you can *easily* add extra functionality to your build it basically the exact same fashion as all of these Groovy DSL- based build tools can. In fact as far as getting the build to "properly express what I need remains" goes, there is no difference, simply configure the plugin and write up your groovy to do the remaining bits.

I strongly disagree here. What you are describing is a very different, anemic approach of doing things. What you can do with GMaven is to call Groovy from a pom.xml. This calling is very limited. It is a single call where you can pass parameters via XML. That's it. You have no chance for example to control the Maven workflow by any return values of the called Groovy code. I want the build script to be able to be in charge of the choreography. Like a session bean that handles the basic workflow. With the Gradle plugins you can easily inject out-of-the-box workflows. But if the user likes he or she is in charge.

For example I have code to start a process on a certain machine. In one build I want to use this code and if the process can't be started I want to call Goal A of plugin X. In another build, if the process can't be started, I want to call goal B of plugin Y on Friday, on other days I want to call goal C.

There is no reason why you couldn't code this up as I suggested, but your build would end up highly unpredictable and hard for folks familiar with Maven to comprehend. IMO thats not a very good thing.

My point is that you can't model with Maven an arbitrary deep acyclic graph.

<snip>

On an unrelated note, it would be kinda cool if Gradle could invoke a Maven plugin, not just Ant tasks.

I think this is very important. I think it is crucial for Gradle to play very nice with Ant and Maven. In regard to repositories, in regard to reusing a pom.xml (at the moment we have a script that transforms the dependency notations from Maven to Gradle). Of course using plugins is also very important. But there are issues. For example in the last Maven build I have been responsible for, we have written a plugin that took a pom object as an argument to do some advanced dependency filtering for creating bundles. I'm skeptical if it would work out to mock Maven objects in Gradle here. But I guess for many plugins this wouldn't be an issue.

<snip>

I still don't think Gradle is ready to do that, but I'd be happy to be wrong and I'll be the first to buy you a beer to celebrate the success... though you'd have to come visit me in Thailand :-P

We had some email exchange in the old days when we both were involved with JBoss for a while and you were the cvs master there. I remember you were writing about your jet lag from just having arrived in Bangkok. Who knows, there might be demand for a Gradle training there :)

<snip>

- Hans