You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org> on 2010/01/05 18:58:55 UTC

[jira] Closed: (MNG-3555) transitive dependency exclusion fails when classifier specified

     [ http://jira.codehaus.org/browse/MNG-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann closed MNG-3555.
----------------------------------

       Resolution: Not A Bug
    Fix Version/s:     (was: 3.0-alpha-7)
         Assignee: Benjamin Bentmann

bq. Note the "rmi" dependency in the main dependencies section with the "provided" scope. Also note the "client" profile.

This is misconfiguration/misunderstanding. The relevant snippet from the effective POM when the profile "client" is activated:
{code:xml}
<dependencies>
  ...
  <dependency>
    <groupId>ca.athabascau.banner.oros</groupId>
    <artifactId>rmi</artifactId>
    <version>1.1.23-SNAPSHOT</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>ca.athabascau.banner.oros</groupId>
    <artifactId>rmi</artifactId>
    <version>1.1.23-SNAPSHOT</version>
    <classifier>client</classifier>
    <scope>compile</scope>
    <exclusions>
      <exclusion>
        <artifactId>moneris-test</artifactId>
        <groupId>ca.athabascau</groupId>
      </exclusion>
      ...
  </dependency>
</dependencies>
{code}
i.e. the WAR project has two dependencies, one on {{ca.athabascau.banner.oros:rmi:1.1.23-SNAPSHOT:client}} and one on {{ca.athabascau.banner.oros:rmi:1.1.23-SNAPSHOT}} which are considered two different/distinct dependencies due to the classifier. And the exclusions defined on one dependency are only applied to this dependency. I.e. while the transitive dependencies of {{ca.athabascau.banner.oros:rmi:1.1.23-SNAPSHOT:client}} are excluded, those of {{ca.athabascau.banner.oros:rmi:1.1.23-SNAPSHOT}} are not.

So, simply define the exclusions on the main dependency as well.

> transitive dependency exclusion fails when classifier specified
> ---------------------------------------------------------------
>
>                 Key: MNG-3555
>                 URL: http://jira.codehaus.org/browse/MNG-3555
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.0.9
>         Environment: Gentoo linux
>            Reporter: Trenton
>            Assignee: Benjamin Bentmann
>            Priority: Blocker
>         Attachments: pom.xml
>
>
> I have a profile like the one below.  When I enable that profile, maven refuses to exclude the dependencies as specified, unless I remove the classifier.  This is basically preventing us from using maven.  We will have to stick with ant until this is resolved.
> A little bit of background.  We have an rmi module and a web module.  This profile is in the web module pom.  The rmi project creates two different types of jars.  One is the rmi server jar, the other the rmi client jar.  In the case of the rmi server jar, all the dependencies would be required.  And, we allow the rmi server to be run in process (under tomcat).  In a case like that, we require all the dependencies.  But, when running in standard RMI mode, and using the client jar, we do not need all those dependencies, nor do we want them to be there.
> {code:xml}
> <profile>
>   <!-- use full rmi when doing development, even if inproc server -->
>   <id>client</id>
>   <build>
>     <resources>
>       <!-- Copy configurations over to webapp folder -->
>       <resource>
>         <filtering>true</filtering>
>         <directory>${basedir}/src/main/resources</directory>
>         <excludes>  <!-- Don't need these in production -->
>           <exclude>server.properties</exclude>
>           <exclude>response_codes.properties</exclude>
>         </excludes>
>       </resource>
>     </resources>
>   </build>
>   <dependencies>
>     <dependency>
>       <groupId>ca.athabascau.banner.oros</groupId>
>       <artifactId>rmi</artifactId>
>       <version>1.1.23-SNAPSHOT</version>
>       <scope>compile</scope>
>       <classifier>client</classifier>
>       <exclusions>
>         <exclusion>
>           <groupId>ca.athabascau</groupId>
>           <artifactId>moneris-test</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>com.oracle.ojdbc</groupId>
>           <artifactId>ojdbc14</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>com.novell</groupId>
>           <artifactId>java-ldap</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>commons-dbcp</groupId>
>           <artifactId>commons-dbcp</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>commons-collections</groupId>
>           <artifactId>commons-collections</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>commons-pool</groupId>
>           <artifactId>commons-pool</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>cas</groupId>
>           <artifactId>casclient</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>xerces</groupId>
>           <artifactId>xercesImpl</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>oro</groupId>
>           <artifactId>oro</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>xml-apis</groupId>
>           <artifactId>xml-apis</artifactId>
>         </exclusion>
>         <exclusion>
>           <groupId>javax.activation</groupId>
>           <artifactId>activation</artifactId>
>         </exclusion>
>       </exclusions>
>     </dependency>
>   </dependencies>
> </profile>
> {code}

-- 
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