I am +1 for the existing format. Supporting more would be a maintenance
add-on.
The only thing I can suggest is that may be certain sections could be
factored out (something like profiles.xml) into separate files (optional)
and merged at build time before the pom is processed. And I think this could
be driven by the fact - what are frequently 'touched' sections after an
'initial' POM has been setup for a project.
For POMs with looooong list of dependencies, would it be possible to sort
the dependencies(or other elements) in an alphabetical order to ensure they
can be located easily? .... may be we could whip up a SortMojo ;-) ......
just thinking out loud!
cheers,
Rahul
----- Original Message -----
From: "Matt Raible" <[EMAIL PROTECTED]>
To: "Maven Users List" <[email protected]>
Sent: Thursday, December 15, 2005 2:06 PM
Subject: Is it possible to make pom.xml simpler?
After seeing what the Spring Developers have done to simplify Spring
context files, I can't help but think the same thing is possible for
Maven 2's pom.xml. Is it possible to add namespaces and make
something like the following possible?
Before:
<dependency>
<groupId>springframework</groupId>
<artifactId>spring</artifactId>
<version>1.2.6</version>
</dependency>
After:
<dep:artifact name="org/springframework/spring" version="1.2.6"/>
Or just allow attributes to make things a bit cleaner?
<dependency groupId="org.springframework" artifactId="spring"
version="1.2.6"/>
Allowing 1 line instead of 5-6 lines per dependency would allow me to
cut my dependencies listing from 140 lines of XML to 37 lines. When
the Spring guys allows a couple of elements as attributes (<ref> and
<value>) - it made writing Spring context files *much* easier.
Here's an example of my simplified version:
<dependencies>
<dependency groupId="cargo" artifactId="cargo" version="0.6"
scope="test"/>
<dependency groupId="commons-lang" artifactId="commons-lang"
version="2.0"/>
<dependency groupId="commons-logging" artifactId="commons-logging"
version="1.0.4"/>
<dependency groupId="displaytag" artifactId="displaytag"
version="1.0" scope="runtime">
<exclusions>
<exclusion artifactId="xalan" groupId="xalan"/>
</exclusions>
</dependency>
<dependency groupId="uk.ltd.getahead" artifactId="dwr"
version="1.0" scope="runtime"/>
<dependency groupId="org.hibernate" artifactId="hibernate"
version="3.0.5">
<exclusions>
<exclusion artifactId="jta" groupId="javax.transaction"/>
</exclusions>
</dependency>
<dependency groupId="geronimo-spec" artifactId="geronimo-spec-jta"
version="1.0.1B-rc4"/>
<dependency groupId="jmock" artifactId="jmock" version="1.0.1"
scope="test"/>
<dependency groupId="junit" artifactId="junit" version="3.8.1"
scope="test"/>
<dependency groupId="jwebunit" artifactId="jwebunit" version="1.2"
scope="test"/>
<dependency groupId="httpunit" artifactId="httpunit" version="1.6"
scope="test">
<exclusions>
<exclusion artifactId="js" groupId="rhino"/>
</exclusions>
</dependency>
<dependency groupId="log4j" artifactId="log4j" version="1.2.11"/>
<dependency groupId="postgresql" artifactId="postgresql"
version="8.1-404.jdbc3"/>
<dependency groupId="javax.servlet" artifactId="servlet-api"
version="2.4" scope="provided"/>
<dependency groupId="javax.servlet" artifactId="jstl"
version="1.1.2" scope="runtime"/>
<dependency groupId="taglibs" artifactId="standard"
version="1.1.2" scope="runtime"/>
<dependency groupId="opensymphony" artifactId="sitemesh"
version="2.2.1" scope="runtime"/>
<dependency groupId="springmodules"
artifactId="springmodules-validator" version="0.1" scope="runtime"/>
<dependency groupId="springframework" artifactId="spring"
version="1.2.6"/>
<dependency groupId="springframework" artifactId="spring-mock"
version="1.2.6" scope="test">
<exclusions>
<exclusion artifactId="spring-jdbc" groupId="springframework"/>
<exclusion artifactId="spring-web" groupId="springframework"/>
</exclusions>
</dependency>
</dependencies>
Of course, Ivy's syntax is even simpler, so maybe that'll provide some
motivation. ;-)
<dependencies>
<dependency org="apache" name="commons-lang" rev="2.0" />
<dependency org="apache" name="commons-cli" rev="1.0" />
</dependencies>
Matt
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]