我想用aether获取maven神器的依赖关系。我看到一个RepositorySystem.collectDependencies(),但它只提取编译和运行时范围的依赖关系。我如何获取工件的所有依赖关系,包括测试和提供的?如何使用aether获取所有maven依赖关系?
4
A
回答
2
看看jcabi-aether(我是一个开发),这大约是Sonatype的奥德的包装:
File repo = this.session.getLocalRepository().getBasedir();
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
1
这三个文件:
是上班,站在 - 使用Aether的例子。
它工作了几个月,然后我突然间出现了一个问题,它有时会在Mac JRE上对com.sun:tools.jar抛出一个DependencyResolutionException。
祝你好运,如果你决定使用它,我会改用maven-dependency-plugin dependency:build-classpath
。
1
你可以在Eclipses Ather中使用DependencyFilter
。对于低于样品A complete version可以在这真棒集Aether snippets.
DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE, JavaScopes.PROVIDED);
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE));
collectRequest.setRepositories(repositories);
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFilter);
List<ArtifactResult> artifactResults =
system.resolveDependencies(session, dependencyRequest).getArtifactResults();
UPDATE
版本0.9.0M3的发现是不是与Maven 3.1.0兼容,所以不要用它里面的Maven ,即在一个插件中。
2
假设你正在使用DefaultRepositorySystemSession
你可以做到以下几点:
defaultRepositorySystemSession.setDependencySelector(new DependencySelector() {
@Override
public boolean selectDependency(Dependency dependency) {
return true;
}
@Override
public DependencySelector deriveChildSelector(DependencyCollectionContext context) {
return this;
}
});
然后
CollectResult result = repositorySystem.collectDependencies(defaultRepositorySystemSession, request);
1
看看这个github上的项目:https://github.com/Gemba/mvn-dd
它下载所有依赖包括测试和提供。
它使用aether的库来获取它们。
相关问题
- 1. 使用Aether获取MavenProject的所有依赖关系(包括传递的依赖项)
- 2. Maven依赖关系
- 3. Maven依赖关系
- 4. 获取缺少依赖关系的Maven项目的依赖关系
- 5. 依赖的Maven副本依赖关系
- 6. 使用Maven管理DLL依赖关系
- 7. Maven未能获得依赖关系
- 8. Maven如何寻找依赖关系
- 9. Maven不能提取依赖关系
- 10. 添加maven依赖关系
- 11. maven条件依赖关系
- 12. Maven依赖关系收敛
- 13. Maven独立依赖关系?
- 14. Maven依赖关系问题
- 15. Maven传递依赖关系
- 16. 减少Maven依赖关系
- 17. Java Maven Jar依赖关系
- 18. Maven依赖关系解析
- 19. maven和red5依赖关系
- 20. Maven。传递依赖关系
- 21. java maven rebuild依赖关系
- 22. Maven和db4o依赖关系
- 23. LibreOffice Maven的依赖关系?
- 24. SQL查询获取所需的DLL的所有依赖关系
- 25. 获取所有可用的类依赖关系
- 26. 具有Maven依赖关系的java.lang.NoClassDefFoundError
- 27. NetBeans中的Maven项目:如何向“依赖关系”和“测试依赖关系”添加依赖关系?
- 28. 如何使用Aurelia加载Main.js中的所有依赖关系?
- 29. maven-shade-plugin:排除依赖关系及其所有传递依赖项
- 30. 使用include设置Maven程序集依赖关系不拾取传递依赖