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]

Reply via email to