[
https://issues.apache.org/jira/browse/MRESOLVER-21?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hervé Boutemy updated MRESOLVER-21:
-----------------------------------
Description:
I modified the `ResolveTransitiveDependencies.java` example in two ways:
- Modified the id to `"org.springframework:spring-context-support:2.5.6.SEC03"`
- Replaced the filter with one that excludes optional dependencies
I'm including the full code below.
Despite that, `system.resolveDependencies()` fails with a
`DependencyResolutionException when trying to resolve a bunch of optional
dependencies, sugh as `jasperreports`.
Head of the stack trace:
{noformat}org.eclipse.aether.resolution.DependencyResolutionException: Failed
to collect dependencies at
org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
jasperreports:jasperreports:jar:2.0.5 ->
commons-logging:commons-logging:jar:99.0-does-not-exist
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:380)
at
org.apache.maven.resolver.examples.ResolveTransitiveDependencies.main(ResolveTransitiveDependencies.java:71)
Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed
to collect dependencies at
org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
jasperreports:jasperreports:jar:2.0.5 ->
commons-logging:commons-logging:jar:99.0-does-not-exist
at
org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:291)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:341)
... 1 more
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to
read artifact descriptor for
commons-logging:commons-logging:jar:99.0-does-not-exist{noformat}
{code:java}
public static void main( String[] args )
throws Exception
{
System.out.println(
"------------------------------------------------------------" );
System.out.println( ResolveTransitiveDependencies.class.getSimpleName()
);
RepositorySystem system = Booter.newRepositorySystem();
RepositorySystemSession session = Booter.newRepositorySystemSession(
system );
Artifact artifact = new DefaultArtifact(
"org.springframework:spring-context-support:2.5.6.SEC03" );
DependencyFilter classpathFlter =
DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE );
DependencyFilter optionalFilter = new DependencyFilter() {
@Override
public boolean accept(DependencyNode dependencyNode,
List<DependencyNode> list) {
return ! dependencyNode.getDependency().getOptional();
}
};
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE )
);
collectRequest.setRepositories( Booter.newRepositories( system, session
) );
DependencyRequest dependencyRequest = new DependencyRequest(
collectRequest, optionalFilter );
try {
List<ArtifactResult> artifactResults =
system.resolveDependencies(session,
dependencyRequest).getArtifactResults();
for (ArtifactResult artifactResult : artifactResults) {
System.out.println(artifactResult.getArtifact() + " resolved to
"
+ artifactResult.getArtifact().getFile());
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
{code}
was:
I modified the `ResolveTransitiveDependencies.java` example in two ways:
- Modified the id to `"org.springframework:spring-context-support:2.5.6.SEC03"`
- Replaced the filter with one that excludes optional dependencies
I'm including the full code below.
Despite that, `system.resolveDependencies()` fails with a
`DependencyResolutionException when trying to resolve a bunch of optional
dependencies, sugh as `jasperreports`.
Head of the stack trace:
```
org.eclipse.aether.resolution.DependencyResolutionException: Failed to collect
dependencies at org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
jasperreports:jasperreports:jar:2.0.5 ->
commons-logging:commons-logging:jar:99.0-does-not-exist
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:380)
at
org.apache.maven.resolver.examples.ResolveTransitiveDependencies.main(ResolveTransitiveDependencies.java:71)
Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed
to collect dependencies at
org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
jasperreports:jasperreports:jar:2.0.5 ->
commons-logging:commons-logging:jar:99.0-does-not-exist
at
org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:291)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:341)
... 1 more
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to
read artifact descriptor for
commons-logging:commons-logging:jar:99.0-does-not-exist
```
```
public static void main( String[] args )
throws Exception
{
System.out.println(
"------------------------------------------------------------" );
System.out.println( ResolveTransitiveDependencies.class.getSimpleName()
);
RepositorySystem system = Booter.newRepositorySystem();
RepositorySystemSession session = Booter.newRepositorySystemSession(
system );
Artifact artifact = new DefaultArtifact(
"org.springframework:spring-context-support:2.5.6.SEC03" );
DependencyFilter classpathFlter =
DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE );
DependencyFilter optionalFilter = new DependencyFilter() {
@Override
public boolean accept(DependencyNode dependencyNode,
List<DependencyNode> list) {
return ! dependencyNode.getDependency().getOptional();
}
};
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE )
);
collectRequest.setRepositories( Booter.newRepositories( system, session
) );
DependencyRequest dependencyRequest = new DependencyRequest(
collectRequest, optionalFilter );
try {
List<ArtifactResult> artifactResults =
system.resolveDependencies(session,
dependencyRequest).getArtifactResults();
for (ArtifactResult artifactResult : artifactResults) {
System.out.println(artifactResult.getArtifact() + " resolved to
"
+ artifactResult.getArtifact().getFile());
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
```
> Maven Resolver trying to resolve optional dependencies
> ------------------------------------------------------
>
> Key: MRESOLVER-21
> URL: https://issues.apache.org/jira/browse/MRESOLVER-21
> Project: Maven Resolver
> Issue Type: Bug
> Components: resolver
> Reporter: Cedric Beust
>
> I modified the `ResolveTransitiveDependencies.java` example in two ways:
> - Modified the id to
> `"org.springframework:spring-context-support:2.5.6.SEC03"`
> - Replaced the filter with one that excludes optional dependencies
> I'm including the full code below.
> Despite that, `system.resolveDependencies()` fails with a
> `DependencyResolutionException when trying to resolve a bunch of optional
> dependencies, sugh as `jasperreports`.
> Head of the stack trace:
> {noformat}org.eclipse.aether.resolution.DependencyResolutionException: Failed
> to collect dependencies at
> org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
> jasperreports:jasperreports:jar:2.0.5 ->
> commons-logging:commons-logging:jar:99.0-does-not-exist
> at
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:380)
> at
> org.apache.maven.resolver.examples.ResolveTransitiveDependencies.main(ResolveTransitiveDependencies.java:71)
> Caused by: org.eclipse.aether.collection.DependencyCollectionException:
> Failed to collect dependencies at
> org.springframework:spring-context-support:jar:2.5.6.SEC03 ->
> jasperreports:jasperreports:jar:2.0.5 ->
> commons-logging:commons-logging:jar:99.0-does-not-exist
> at
> org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:291)
> at
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:341)
> ... 1 more
> Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed
> to read artifact descriptor for
> commons-logging:commons-logging:jar:99.0-does-not-exist{noformat}
> {code:java}
> public static void main( String[] args )
> throws Exception
> {
> System.out.println(
> "------------------------------------------------------------" );
> System.out.println(
> ResolveTransitiveDependencies.class.getSimpleName() );
> RepositorySystem system = Booter.newRepositorySystem();
> RepositorySystemSession session = Booter.newRepositorySystemSession(
> system );
> Artifact artifact = new DefaultArtifact(
> "org.springframework:spring-context-support:2.5.6.SEC03" );
> DependencyFilter classpathFlter =
> DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE );
> DependencyFilter optionalFilter = new DependencyFilter() {
> @Override
> public boolean accept(DependencyNode dependencyNode,
> List<DependencyNode> list) {
> return ! dependencyNode.getDependency().getOptional();
> }
> };
> CollectRequest collectRequest = new CollectRequest();
> collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE
> ) );
> collectRequest.setRepositories( Booter.newRepositories( system,
> session ) );
> DependencyRequest dependencyRequest = new DependencyRequest(
> collectRequest, optionalFilter );
> try {
> List<ArtifactResult> artifactResults =
> system.resolveDependencies(session,
> dependencyRequest).getArtifactResults();
> for (ArtifactResult artifactResult : artifactResults) {
> System.out.println(artifactResult.getArtifact() + " resolved
> to "
> + artifactResult.getArtifact().getFile());
> }
> } catch(Exception ex) {
> ex.printStackTrace();
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)