[
https://issues.jboss.org/browse/SHRINKWRAP-466?page=com.atlassian.jira.pl...
]
Ken H commented on SHRINKWRAP-466:
----------------------------------
I apologize in advance for not having an example. If transitive exclusions are not
captured in any test case then there should likely be one created.
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 (in v2.0.0) 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