Greetings,
Seems that dependencies should provide two features they do not already;

1) the ability to explicitly specify the URL from which to download an
artifact (in m1, if I recall, this was handled by the <jar> element). This
is particularly important when one depends upon interface definitions --
particularly WSDLs -- which are typically available from some webserver
which does not adhere to the maven style of URL. A client may wish to find
these dependencies at the URL first, and leave open the possibility of
finding the WSDL locally in a maven-style repo.

Looking at the available <dependency> XML elements; systemPath is
System-scope only, but something akin to it (say, <path>) might work.

          <dependency>
            <groupId>org.myorg.services</groupId>
            <artifactId>foo</artifactId>
            <version>1.0.0</version>
             <type>wsdl</type>
            <path>http://foo.com/wslds/foo.wsdl</path>
            <properties transitive="false" >
                  <server.wsdl>true</server.wsdl>
                 <war.bundle>true</war.bundle>
            </properties>
          </dependency>

2) The ability to specify a dependency property (as in m1). For example, in
my project must be able to specify that I want a WSDL dependency as either a
client or a server. This is an application specific property, which is a
good, legitimate use of properties. Others are "war.bundle", etc. These
properties may be used in all points of the lifecycle. In one case, <
server.wsdl> is a compile-time property, in another <war.bundle> is a
assembly-time property. It seems that these properties could be transitive
-- so that, say, war.bundle will pertain to the declaring dependency and all
of it's descendants (so that they all end up in the war.bundle). Or perhaps
use an XML artifact to control whether it is transitive or not would be
useful.

I'm probably rehashing old history, but why were dependency properties
removed in m2??

Thanks,
-- Chris

Reply via email to