]
Karel Piwko reassigned SHRINKRES-143:
-------------------------------------
Assignee: Karel Piwko (was: Andrew Rubinger)
tolerate illegal dependency scopes
----------------------------------
Key: SHRINKRES-143
URL:
https://issues.jboss.org/browse/SHRINKRES-143
Project: ShrinkWrap Resolvers
Issue Type: Enhancement
Reporter: Tamás Kimmel
Assignee: Karel Piwko
It would be nice to send a warning when a scope is illegal, and fallback to compile. At
least, when the dependency is not nedded. For example it is a transitive dependency, but i
try to resolve without transitivity.
Now resolver sends an exception, and my test blows.
My exact use-case:
{noformat}
PomEquippedResolveStage resolver =
Maven.resolver().offline().loadPomFromFile("pom.xml");
MavenStrategyStage strategy = resolver.resolve(
"org.modeshape:modeshape-jcr-api",
"org.modeshape:modeshape-jcr",
"org.modeshape:modeshape-common");
File[] jars = strategy.withoutTransitivity().asFile();
{noformat}
In pom.xml i have:
{noformat}
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.modeshape.bom</groupId>
<artifactId>modeshape-bom-embedded</artifactId>
<version>3.2.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
{noformat}
I get an exception:
{noformat}
java.lang.IllegalArgumentException: Scope type test,provided is not supported.
at org.jboss.shrinkwrap.resolver.api.maven.ScopeType.fromScopeType(ScopeType.java:72)
at
org.jboss.shrinkwrap.resolver.impl.maven.convert.MavenConverter.fromDependency(MavenConverter.java:116)
at
org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenResolutionFilterWrap.accept(MavenRepositorySystem.java:211)
at
org.sonatype.aether.util.graph.FilteringDependencyVisitor.visitEnter(FilteringDependencyVisitor.java:73)
at
org.sonatype.aether.util.graph.TreeDependencyVisitor.visitEnter(TreeDependencyVisitor.java:61)
at org.sonatype.aether.impl.internal.GraphEdge.accept(GraphEdge.java:198)
at org.sonatype.aether.impl.internal.GraphEdge.accept(GraphEdge.java:202)
at org.sonatype.aether.impl.internal.GraphEdge.accept(GraphEdge.java:202)
at org.sonatype.aether.impl.internal.GraphEdge.accept(GraphEdge.java:202)
at org.sonatype.aether.impl.internal.GraphEdge.accept(GraphEdge.java:202)
at
org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:352)
at
org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenRepositorySystem.resolveDependencies(MavenRepositorySystem.java:122)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.resolveDependencies(MavenWorkingSessionImpl.java:251)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.using(MavenStrategyStageBaseImpl.java:67)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.withoutTransitivity(MavenStrategyStageBaseImpl.java:54)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.withoutTransitivity(MavenStrategyStageBaseImpl.java:38)
{noformat}
The real problem is in a transitive dependency.
http://repo1.maven.org/maven2/org/gagravarr/vorbis-java-tika/0.1/vorbis-j...
{noformat}
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>vorbis-java-core</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test,provided</scope>
</dependency>
{noformat}
The scope is illegal. But in my case it is irrelavant. My workaround was to upload a
fixed java-tika pom.xml to our corporate nexus. I think it would be nice to tolerate this
error in shrinkwrap-resolver. My other tools like maven, and netbeans are tolerate it too.
(maven fallbacks to compile scope as i understand)
I should file a bug report to vorbis-java-tika, but i'm afraid there are some other
projects in the wild with similar errors.
--
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: