我正在使用eather在我的代码中重新创建相同的maven依赖结构:树。按照文档,我发现这个有用的示例正确列出了与插件相同的依赖关系,但它缺少任何“树”信息,它只是一个平面列表。
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.eclipse.aether:aether-impl:1.0.0.v20140518" );
DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE );
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE ) );
collectRequest.setRepositories( Booter.newRepositories( system, session ) );
DependencyRequest dependencyRequest = new DependencyRequest( collectRequest, classpathFlter );
List<ArtifactResult> artifactResults =
system.resolveDependencies( session, dependencyRequest ).getArtifactResults();
for ( ArtifactResult artifactResult : artifactResults )
{
System.out.println( artifactResult.getArtifact() + " resolved to " + artifactResult.getArtifact().getFile() );
}
}
然后我编写了另一段代码来检索非传递依赖关系,并递归调用它,能够获得完整的依赖关系图,但没有任何限制,所以我应该实现一些过滤/限制例程。
由于我想尽可能多地保留相同的插件逻辑,而不引入“我的”过滤,有没有办法调整第一个示例以检索层次结构信息?