[shrinkwrap-issues] [JBoss JIRA] (SHRINKWRAP-466) Maven dependency resolution ignores transitive exclusions

Ken H (JIRA) jira-events at lists.jboss.org
Thu Oct 3 11:53:02 EDT 2013


Ken H created SHRINKWRAP-466:
--------------------------------

             Summary: Maven dependency resolution ignores transitive exclusions
                 Key: SHRINKWRAP-466
                 URL: https://issues.jboss.org/browse/SHRINKWRAP-466
             Project: ShrinkWrap
          Issue Type: Bug
            Reporter: Ken H


In certain circumstances, it seems that the Maven resolver is ignoring transitive exclusions.

Relevant pom.xml:
{code}
<dependency>
			<groupId>org.drools</groupId>
			<artifactId>drools-core</artifactId>
			<version>${drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.drools</groupId>
			<artifactId>drools-compiler</artifactId>
			<version>${drools.version}</version>
			<exclusions>
		      <exclusion>
		         <groupId>org.antlr</groupId>
		         <artifactId>antlr</artifactId>
		      </exclusion>
		      <exclusion>
		         <groupId>org.antlr</groupId>
		         <artifactId>antlr-runtime</artifactId>
		      </exclusion>
		      <exclusion>
		         <groupId>antlr</groupId>
		         <artifactId>antlr</artifactId>
		      </exclusion>
		      <exclusion>
		         <groupId>antlr</groupId>
		         <artifactId>antlr-runtime</artifactId>
		      </exclusion>
		    </exclusions>
		</dependency>
				
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.0.1.Final</version>
			<scope>provided</scope>
			<exclusions>
		      <exclusion>
		         <groupId>antlr</groupId>
		         <artifactId>antlr</artifactId>
		      </exclusion>
		   </exclusions>
		</dependency>
{code}

Expected way to build dependency list:
{code}
File[] dependencyFiles = Maven.resolver().loadPomFromFile("pom.xml")
			.importRuntimeAndTestDependencies()
			.resolve().withTransitivity().asFile();
{code}

However, this results in antlr still being added to the dependency list and the resulting WebArchive.

My temporary workaround is to explicitly exclude the G:A:
{code}
File[] dependencyFiles = Maven.resolver().loadPomFromFile("pom.xml")
			.importRuntimeAndTestDependencies()
			.resolve()
			.using( new RejectDependenciesStrategy(false, "org.antlr:antlr", "antlr:antlr") )
			.withTransitivity().asFile();
{code}

Also note that the false is required in the RejectDependenciesStrategy. Without it, all (yes, all) transitive dependencies are ignored. This may be a separate issue but I want to mention it for anyone attempting this workaround.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the shrinkwrap-issues mailing list