我想用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依賴關係
- 7. Maven依賴關係:樹不顯示所有傳遞依賴關係
- 8. 獲取缺少依賴關係的Maven項目的依賴關係
- 9. 如何獲取所有不滿意的依賴關係列表
- 10. 依賴的Maven副本依賴關係
- 11. 使用maven簽署依賴關係
- 12. 使用Maven管理DLL依賴關係
- 13. Maven如何尋找依賴關係
- 14. 如何理解Maven依賴關係樹
- 15. Maven未能獲得依賴關係
- 16. Maven不能提取依賴關係
- 17. AbstractHandler的Maven依賴關係
- 18. Zest Eclipse Maven依賴關係
- 19. Grails依賴關係或Maven
- 20. 碼頭maven依賴關係
- 21. Pentaho maven/gradle依賴關係
- 22. Maven傳遞依賴關係
- 23. Maven - 建立依賴關係
- 24. Maven插件依賴關係
- 25. Maven依賴關係for org.apache.poi.POIXMLDocument
- 26. 瞭解Maven依賴關係
- 27. sqlserver2010的maven依賴關係?
- 28. LibreOffice Maven的依賴關係?
- 29. maven和red5依賴關係
- 30. Visual Maven依賴關係圖