After investing quite a bit of time in a maven/ant solution to our build problems we have dropped maven. We found something new had broken every Monday (they seem to release new plugins on the weekend). We are still using it for downloads, but will probably stop that as will, as our repository is now in subversion.
The quality of the maven/eclipse code was simply not up to our standards, and we had a major problem with the lack of documentation. Our repository is still in maven2 format, and we are describing our dependencies in an attenuated pom. We will continue using these well-thought out parts of maven, but cannot afford to use the poorly tested code in our builds. Liz Sommers [EMAIL PROTECTED] -----Original Message----- From: Steve Loughran [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 13, 2006 6:32 AM To: Ant Users List Subject: Re: Maven vs. Ant? Antoine Levy-Lambert wrote: > Hi, > > I am interested by this thread, as the project I am working for might need a tool able to manage inter-project dependencies and a repository. > > Has anyone compared maven and ivy ? And what about dpml ? > > Regards, > > Antoine > Antoine, the forthcoming second edition of Java Development with Ant will have a whole chapter on library management using the maven2 tasks, consuming stuff from the repository, producing stuff in there as a way of gluing stuff together. I will send you a draft chapter if you promise to correct all the mistakes :) Right now library management is something we have not built into Ant. For a few months there was some repository stuff in CVS, but I pulled it as I didnt have it right, and felt that people who knew what they were doing (maven2, ivy) could handle it better. I have many issues with the quality of the m2 poms, they often pull in too much stuff, stuff you end up having to exclude a lot of stuff you dont need, or you end up pulling around too much baggage. Here is my code to create a pom for a soap stack <target name="m2-make-pom" depends="m2-init" <echo message="Creating Pom ${target.pom}" level="verbose"/> <echoxml file="${target.pom}"> <project> <modelVersion>4.0.0</modelVersion> <groupId>${m2.groupID}</groupId> <artifactId>${artifact.name}</artifactId> <packaging>jar</packaging> <version>${Version}</version> <dependencies> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>${commons-httpclient.version}</version> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging-api</artifactId> <version>${commons-logging.version}</version> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>${xerces.version}</version> </dependency> <dependency> <groupId>xerces</groupId> <artifactId>xmlParserAPIs</artifactId> <version>${xerces.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging-api</artifactId> <version>${commons-logging.version}</version> </dependency> <dependency> <groupId>servletapi</groupId> <artifactId>servletapi</artifactId> <version>${servletapi.version}</version> </dependency> <dependency> <groupId>xom</groupId> <artifactId>xom</artifactId> <version>${xom.version}</version> <exclusions> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </exclusion> <exclusion> <groupId>jdom</groupId> <artifactId>jdom</artifactId> </exclusion> <exclusion> <groupId>xalan</groupId> <artifactId>xalan</artifactId> </exclusion> <exclusion> <groupId>jaxme</groupId> <artifactId>jaxme</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </project> </echoxml> </target> I save this to a file then use it in the m2 tasks and to publish the artifact itself. I am also not over-happy with the M2 ant tasks. They have the feel of a bit of an afterthought, so there are no unit tests, sometimes they ship broken (as in m2 2.0.1), and they are a bit clunky to use. Error messaging is particularly bad. The underlying cause is that they are a very thin wrapper around the maven wagon code, and not coupled that well to ant. Someone could sit down and make them much smoother, which is something I may have to do myself. In their defence, they do work, I use them not only to fetch stuff, but to publish things. And now that a lot of the sun jars have snuck over into the OSS repository from glassfish, you can even get mail.jar and activation.jar via the tasks. Property-driven library switching is nice indeed. If a new version of a library comes out, to test build against it you edit your build.properties, rebuild and retest, and, if happy, update the SCM-managed libraries.properties file. -steve --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ____________________________ http://www.pragmatics.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]