You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Cedric Beust (JIRA)" <ji...@apache.org> on 2017/04/02 15:40:42 UTC
[jira] [Created] (MRESOLVER-21) Maven Resolver trying to resolve
optional dependencies
Cedric Beust created MRESOLVER-21:
-------------------------------------
Summary: 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`.
```
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();
}
}
```
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)