Isn't this exactly what transitive dependencies do?
--
David Pratt
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)
On Tuesday, February 5, 2013 at 8:10 AM, Matthew Adams wrote:
Hi all,
I started using the pom import feature (
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies),
and discovered that it differed from my expectations. What I was looking
for was a way to define a new artifact in a pom that, if used in a
consuming artifact's
<dependencies>
, would include all of the dependencies
in the referenced artifact.
For example, take DataNucleus. I've defined my own pom for import
purposes
that contains both the
<dependencyManagement>
section and
<dependencies>
that are to be included. It's at
https://github.com/matthewadams/datanucleus-rdbms/blob/master/pom.xml.
As a client, if I use the existing pom import support, then all I
effectively get are entries in my pom's
<dependencyManagement>
section.
The inconvenient thing is, I still have to declare each of the imported
pom's dependencies that I want. That kind of defeats the purpose of
defining a pom to be imported, IMHO.
Instead, I'd like to propose that a new scope be introduced called
"include", that implies
<type>
pom
</type>
so that all I have to do is use
the following in my consuming pom:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>
4.0.0
</modelVersion>
<groupId>
me.matthewadams
</groupId>
<artifactId>
pom-include-client
</artifactId>
<version>
0.1.0.BUILD-SNAPSHOT
</version>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
me.matthewadams
</groupId>
<artifactId>
datanucleus-rdbms
</artifactId>
<scope>
include
</scope>
<version>
3.1.4
</version>
</dependency>
</dependencies>
</project>
This way, it's extremely convenient to get all the constituent artifacts
without having to declare them all.
Thoughts?
-matthew
--
mailto:
matthew@
<
matthew@
(mailto:
matthew@
)>
skype:matthewadams12
googletalk:
matthew@
(mailto:
matthew@
)
http://matthewadams.me
http://www.linkedin.com/in/matthewadams