[ 
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)

Reply via email to