Get optional transitive dependencies
------------------------------------

                 Key: MNG-2966
                 URL: http://jira.codehaus.org/browse/MNG-2966
             Project: Maven 2
          Issue Type: Improvement
          Components: Dependencies
            Reporter: Daniel Beland



I would like to be able to add an includes statement on a dependency to get its 
optional dependency(ies).

ie:
    <dependency>
      <groupId>hibernate</groupId>
      <artifactId>hibernate</artifactId>
      <version>3.2.1.ga</version>
      <inclusions>
        <inclusion>
          <groupId>jgroups</groupId>
          <artifactId>jgroups-all</artifactId>
          <scope>runtime</scope>
          <optional>false</optional>
        </inclusion>
      </inclusions>
    </dependency>

 For example, I use hibernate 3.2.1.ga, it has an optional dependency on 
jgroups-all-2.2.8.
I would like to be able to add an inclusion statement on the hibernate lib to 
tell that I want to include jgroups as well. 
The main reason for this is that I want the same version as specified in the 
hibernate pom.
This way, upgrading hibernate would also upgrade my version of jgroups at the 
same time.
Obviously, we need to be able to define a scope and optional attribute as well 
(not inherited)



Or maybe we could set the dependency explicitly in the pom without specifying 
the version and have maven resolve the version from the nearest source (as it 
does normally) automatically or we specify where to resolve it.

ie something like:

    <dependency>
      <groupId>jgroups</groupId>
      <artifactId>jgroups-all</artifactId>

      <! -- either maven resolves the version from the nearest source 
automatically or we need to tell maven where to find it -->
      <versionLookup>
        <groupId>hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <!-- maven will resolve the version from the hibernate pom as long as 
hibernate is already a dependency of my project (no version needed)
               or we specify which version from a property (to have it defined 
only once in the pom) -->
        <version>${hibernate.version}</version>
      </versionLookup>

      <scope>runtime</scope>
      <optional>false</optional>
    </dependency>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to