

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
69 messages in org.codehaus.groovy.devRe: [groovy-dev] Building Groovy| From | Sent On | Attachments |
|---|---|---|
| Russel Winder | Oct 6, 2008 4:36 am | |
| Mingfai | Oct 6, 2008 4:47 am | |
| Hans Dockter | Oct 6, 2008 4:50 am | |
| Hans Dockter | Oct 6, 2008 4:55 am | |
| Jochen Theodorou | Oct 6, 2008 4:56 am | |
| Guillaume Laforge | Oct 6, 2008 7:17 am | |
| Hans Dockter | Oct 6, 2008 7:51 am | |
| Russel Winder | Oct 6, 2008 7:59 am | |
| Guillaume Laforge | Oct 6, 2008 8:19 am | |
| Guillaume Laforge | Oct 6, 2008 8:25 am | |
| Mingfai | Oct 6, 2008 8:28 am | |
| Guillaume Laforge | Oct 6, 2008 8:36 am | |
| Hans Dockter | Oct 6, 2008 1:46 pm | |
| Guillaume Laforge | Oct 6, 2008 1:54 pm | |
| Hans Dockter | Oct 6, 2008 1:54 pm | |
| Jochen Theodorou | Oct 6, 2008 2:03 pm | |
| Guillaume Laforge | Oct 6, 2008 2:09 pm | |
| Paul Duffy | Oct 6, 2008 7:06 pm | |
| Luke Daley | Oct 6, 2008 8:47 pm | |
| Guillaume Laforge | Oct 6, 2008 9:44 pm | |
| Russel Winder | Oct 6, 2008 11:25 pm | |
| Russel Winder | Oct 6, 2008 11:54 pm | |
| Russel Winder | Oct 7, 2008 12:03 am | |
| Jason Dillon | Oct 7, 2008 12:23 am | |
| Russel Winder | Oct 7, 2008 12:24 am | |
| Guillaume Laforge | Oct 7, 2008 12:30 am | |
| Hans Dockter | Oct 7, 2008 12:35 am | |
| Jason Dillon | Oct 7, 2008 12:35 am | |
| Hans Dockter | Oct 7, 2008 12:36 am | |
| Jason Dillon | Oct 7, 2008 12:41 am | |
| Guillaume Laforge | Oct 7, 2008 12:54 am | |
| Jason Dillon | Oct 7, 2008 1:40 am | |
| Guillaume Laforge | Oct 7, 2008 1:50 am | |
| Jason Dillon | Oct 7, 2008 1:55 am | |
| Guillaume Laforge | Oct 7, 2008 2:25 am | |
| Guillaume Laforge | Oct 7, 2008 2:35 am | |
| Jason Dillon | Oct 7, 2008 3:09 am | |
| Guillaume Laforge | Oct 7, 2008 3:12 am | |
| Russel Winder | Oct 7, 2008 3:17 am | |
| Jason Dillon | Oct 7, 2008 3:24 am | |
| Paul King | Oct 7, 2008 4:04 am | |
| ma...@dockter.biz | Oct 7, 2008 4:19 am | |
| ma...@dockter.biz | Oct 7, 2008 4:25 am | |
| Jason Dillon | Oct 7, 2008 4:36 am | |
| Jason Dillon | Oct 7, 2008 4:39 am | |
| Jochen Theodorou | Oct 7, 2008 5:20 am | |
| Jason Dillon | Oct 7, 2008 8:19 am | |
| Jochen Theodorou | Oct 7, 2008 9:51 am | |
| Jason Dillon | Oct 7, 2008 10:49 am | |
| Jochen Theodorou | Oct 7, 2008 12:03 pm | |
| Hans Dockter | Oct 7, 2008 2:34 pm | |
| Luke Daley | Oct 7, 2008 3:52 pm | |
| Jason Dillon | Oct 8, 2008 1:28 am | |
| Jason Dillon | Oct 8, 2008 1:35 am | |
| Hans Dockter | Oct 8, 2008 3:11 am | |
| Hans Dockter | Oct 8, 2008 3:49 am | |
| Hans Dockter | Oct 8, 2008 4:30 am | |
| Hans Dockter | Oct 8, 2008 4:40 am | |
| Jason Dillon | Oct 8, 2008 4:52 am | |
| Jason Dillon | Oct 8, 2008 5:21 am | |
| Jochen Theodorou | Oct 8, 2008 6:23 am | |
| Jochen Theodorou | Oct 8, 2008 6:47 am | |
| Jochen Theodorou | Oct 8, 2008 6:59 am | |
| Hans Dockter | Oct 8, 2008 8:33 am | |
| Hans Dockter | Oct 8, 2008 8:43 am | |
| Paul Duffy | Oct 9, 2008 8:58 am | |
| Paul King | Oct 9, 2008 1:15 pm | |
| Danno Ferrin | Oct 9, 2008 1:27 pm | |
| Paul King | Oct 10, 2008 2:31 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [groovy-dev] Building Groovy | Actions... |
|---|---|---|
| From: | Jason Dillon (jaso...@gmail.com) | |
| Date: | Oct 8, 2008 5:21:22 am | |
| List: | org.codehaus.groovy.dev | |
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.
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.
Another problem of most build systems is that you have to breach media very often. In ant you program in XML... that in itself is something I think should be considered as a media breach... but most people then go and XSLT or write custom ant tasks. You use these, because the XML becomes unreasonably big if you do not do so, or things can be expressed more easy that way. Again the build system and the way of usage is to be considered as not powerful enough here. In make you often use autoconf... a joy in itself, but probably still better than many ant builds... only that autoconf doesn't help you much with java builds. In m1, well I mentioned the usage of jelly and ant tasks already. With the ant task you have not only a media breach, but also a breach in the build system usage... m1 was thought to be independent of ant, or not? And jelly... well let us better forget that chapter. Now in m2 you have your plugins and your XML, which is again a media breach. The only way for m2 to avoid this is to minimize the XML part and hope no custom plugin is required. But the standard answer from the m2 guys to all sorts of problems seems to be to write a plugin...
Ant was *never* intended to be a scripting language... in other words you "configure" Ant, you don't "program" Ant.
I see this differently. With the new stuff introduces in its last releases Ant has chosen to become a scripting language (mixins, macrodefs, ...). To cite Steve Loughran, an Ant committer and author of the book 'Ant in Action'. He said about the new features introduced by Ant: Think of all the fun you can have with that. With this and the Ant-contrib tasks of chapter 10, Ant is almost a real programming language. It doesn’t have local variables, but it does have something close to it.
Sure, things evolve... sometimes into monsters. My point was that the original vision was that Ant was not a scripting language. Have a look at "Ant: The Definitive Guide" from O'Reilly if you don't believe me.
Sure if you need something outside the set of existing tasks you need to program a new task, or use one of the scripting tasks that are available, which brings us right back to the same point I'm making above.
Um, is using a Java-based tool to build a Groovy project a breach as well? I'm not buying this argument at all... but I understand its your opinion and I respect that. :-)
It is about the mind set and the equivalence of tools. In this respect Java vs. Groovy is obviously not a breach in contrast to XML.
No I was just being a smart-ass, cause I didn't (and still don't) buy the media breach concept.
In smaller groups, where folks pretty much know about all of the codebase this might work. But in larger enterprise or open-source groups this is almost certainly a recipe for disaster, as you get new folks coming in all the time, they go look at build goo and don't understand it, or worse yet don't understand it and try to change it. Developer comprehension of build tools is IMO very important, especially when they have to muck with it, and IMO a build tool where you code up everything in any way you feel like at the moment, will probably cause some problems for new folks to understand easily.
For Java/Groovy developers a build based on Groovy is more transparent than a build based on an external XML language like Maven offers.
How? How does using a Groovy DSL-based tool make anything more transparent than an XML-based tool? There is still plumbing in both which makes the damn thing work. If a developer doesn't know how the pipes fit, they are still clueless about what is going on.
Groovy and XML are on pair if you consider them both languages... then the DSL and XML Schema are then parallel on the level of knowledge that a developer must comprehend to use the tool.
So I see them basically as the same. Both require some additional learning on the part of the user to make affective use of the tool. Only difference is the underlying language, so I don't really see how a Groovy-based tool becomes any more transparent to a Groovy developer.
BUT... that said, I do like Groovy and have wished for a Groovy-pom many times, almost went and crafted up a system like Gradle to do what I want the way I want. . And I look forward to seeing where Gradle can go in the future. I'm not convinced yet that its a better tool than Maven is... yet. My personal opinion is that is not quite mature enough, but we'll see where things go.
On an unrelated note, it would be kinda cool if Gradle could invoke a Maven plugin, not just Ant tasks.
I use Maven2 because ATM I believe it to be the best tool out there for the wide variety of simple to complex build systems I work on. As I mentioned before that didn't use to be the case. Before M2 it was M1, before M1 it was Ant and before Ant it wash Make. So I've no problem eventually evolving into another tool, as long as it can do the job I need to perform.
If it was me, and I was using an unmanageable Ant build, I think my recommendation would still be to move towards M2, split up monolithic modules and then wait to see what other tools can provide when they reach a level of enterprise maturity. From what I gather, the changes to split up monolithic modules will have a lot of synergy with an eventual/potential switch to Gradle. So IMO its baby steps. My desire (besides having someone other than myself do the work and deal with the stress) is to end up with a more modular groovy-core build, which trims down the core classes while providing artifacts for the ancillary ones... such that any build supporting Ivy or M2 can resolve them easily to quickly make use of them.
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
Bottom line... I look forward to seeing where Gradle goes... but for my builds I'm gonna stick with m2 for now.
--jason
--------------------------------------------------------------------- To unsubscribe from this list, please visit:







