[
https://issues.jboss.org/browse/SHRINKRES-152?page=com.atlassian.jira.plu...
]
Karel Piwko commented on SHRINKRES-152:
---------------------------------------
[~steeltomato] I'm not able to reproduce the issue. Here is my pom:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!-- Model Version -->
<modelVersion>4.0.0</modelVersion>
<!-- Artifact Configuration -->
<groupId>org.jboss.shrinkwrap.test</groupId>
<artifactId>test-deps-a</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<build>
</build>
<properties>
<drools.version>6.0.0.Final</drools.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.modeshape.bom</groupId>
<artifactId>modeshape-bom-embedded</artifactId>
<version>3.2.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<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>
</dependencies>
</project>
{code}
Here is how I call it:
{code}
File[] files = Maven.configureResolver().fromFile(REMOTE_ENABLED_SETTINGS)
.loadPomFromFile("target/poms/test-swr152.xml")
.importRuntimeAndTestDependencies()
.resolve().withTransitivity().asFile();
for(File f: files) {
System.out.println(f.getName());
}
{code}
And this is a list of resolved files:
drools-core-6.0.0.Final.jar
mvel2-2.1.7.Final.jar
kie-api-6.0.0.Final.jar
kie-internal-6.0.0.Final.jar
slf4j-api-1.6.1.jar
drools-compiler-6.0.0.Final.jar
ecj-3.7.2.jar
xstream-1.4.3.jar
xmlpull-1.1.3.1.jar
xpp3_min-1.1.4c.jar
protobuf-java-2.5.0.jar
As you can see, there is no antlr* dependency. Can you provide more details?
Maven dependency resolution ignores transitive exclusions
---------------------------------------------------------
Key: SHRINKRES-152
URL:
https://issues.jboss.org/browse/SHRINKRES-152
Project: ShrinkWrap Resolvers
Issue Type: Bug
Affects Versions: 2.0.0
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