

![]() | 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: | Hans Dockter (ma...@dockter.biz) | |
| Date: | Oct 8, 2008 3:11:01 am | |
| List: | org.codehaus.groovy.dev | |
Hi Jason,
On Oct 7, 2008, at 10:55 AM, Jason Dillon wrote:
<snip>
Kudos for Maven for introducing the concept of build-by-convention long before it was made popular by rails-like frameworks. If it wouldn't have been for Jelly, the Maven people might have sticked with their Maven 1 approach which I definitely prefer to what they provide with Maven2.
Um, I don't think so... Jelly wasn't really the problem with Maven1, it was its entire concept of what a plugin is, how you configure plugins and how they get executed. Jelly just didn't help the problem at all.
Really? Jelly was a buggy unmaintained scripting language. This was at the base of Maven1 and this was a dramatic problem. I remember the Maven guys saying for Maven 2 something like: 'We don't even start to _think_ about supporting Groovy unless there is a 1.0 release'. For those who don't know this: This was owned to the fact that James has been the creator of both, Groovy and Jelly.
- It has the same problem as Ant regarding the anemic interaction with Java/Groovy (Maven considers this as a feature). The GMaven plugin does not make a difference here. You can't use Groovy to choreograph the build.
GMaven is not intended to choreograph anything, the dancing bits are already handled by the Maven reactor. GMaven just puts a little move groove into the dance.
That is what I'm saying.
- Maven enforces an often bizarre level of indirection (has anybody ever used the Maven constraint plugin to express the most simple custom constraint). Maven's verbosity is extreme.
"Maven constraint plugin"? What is that?
I mean the http://maven.apache.org/plugins/maven-enforcer-plugin/
- Maven's dependency management is far inferior to Ivy.
Pudding please?
This is an easy one:
See my work in progress document: http://docs.codehaus.org/download/ attachments/74383419/mavenDependencies.pdf
Also have a look at: http://ant.apache.org/ivy/m2comparison.html
Beside the many issues mentioned and shown in the documents above, the list is much longer. Ivy provides transaction policies for you caches. You can have as many caches as you want. You can define arbitrary patterns for repository layout. You can use regular expressions for inclusions, etc ...
I have worked with both, Maven and Ivy, intensely. I can only say it again: Ivy is light years ahead of Maven in regard to dependency management. Maven's dependency management is not very powerful, inflexible and conceptually flawed.
- Maven also introduces its own general purpose elements which are not necessarily implemented well (e.g. pom inheritance). (Have you ever tried to use a single property as a version value for all subprojects in a slightly complex multi-project build)
Yes I have.
I had a multi-project build which had not one single inheritance chain. It was impossible for me to achieve this. I have tried to use project specific properties in a profiles.xml (which I have stored in the root project folder) which also did not work out. The only solution I have found with projects that had a similar scenario was to use XML Entity Inclusion. I had no time yet to set up a sample project for this. But I doubt that you would find a solution.
- Maven is not based on dependency based programming. What it offers instead to hook in actions is significantly more inflexible.
I assume you mean phases instead of actions?
I mean actions in the general sense of the word. This is about comparing build systems. So I don't want to use Maven terminology for this.
In Maven terminology I don't mean phases. I mean hooking plugin goals into phases.
You know that the lifecycle phases for a build are completely configurable?
LOL
You can't for example even configure that during the deploy phase the war plugin (which is associated with this phase by default) should _not_ deploy anything. At least you can't do this on a per project level, which is usually what is needed. And for example the default lifecycle phases are also always executed first by definition.
And that goal execution can depend on other goal executions right (via the @execute annotation)?
And how can you configure as a build-user such things on a per build basis? You can hook in goals to phases as a flat ordered list. That's it. This is far inferior to having an arbitrary deep acyclic graph of actions (generally speaking).
- Its multi-project build features are inferior to what Gradle offers. For example: -- You can't do partial builds. In Gradle you can build a subproject in a way that all the project it depends on are rebuild as well. In Maven you always have to trigger the complete build (and if this takes some time you have to watch the console to push Ctrl-C when the stuff you want to have rebuild is done).
This is not exactly true.
It is true for the use case I have provided.
First you can always create profiles to control the set of modules which will be built.
I have done this with Maven. This is nice if you have one mulit- project build and want to use it to produce different distributions which require different subprojects. But this is no solution to the problem I have described, as you probably will know.
Second you can use the maven-reactor-plugin to get even more control over how things build:
I can't see how this solves the the use case from above. Could you give more details?
Pudding please? I know of a lot of stuff that lives inside of Maven, not happy with some of it sure, but if you are going to make a statement like this it would really help your point if you at least listed some of the frameworks and why you think they are a sickness ;-)
Have a look at my comments above regarding the Maven lifecycle. This point is not about the good or bad qualitiy of certain aspects of Maven. This is about the general approach of Maven. Maven is a big framework. A Maven user can only move within this framework. But the build space is complex and the users have many requirements which can't be anticipated by the developers, however smart they are. In such cases any framework turns into an obstacle or prison. Gradle is _not_ a framework. It has a language for dependency based programming at its base and highly configurable frameworks can be plugged in. But you can always fall back to utmost flexibility. I have seen that this issue is discussed between you and Jochen in some other postings in this thread. So I will write more about it there.
- Hans
-- Hans Dockter Gradle Project lead http://www.gradle.org
--------------------------------------------------------------------- To unsubscribe from this list, please visit:







