目前,在處理MavenProject時,我使用getDependencyArtifacts來獲取直接(非傳遞)依賴項。但是,此方法被標記為已棄用。那么,我應該用什么來代替呢?我看到有方法getDependencies,但它獲取傳遞依賴項,我看不到任何過濾直接依賴項的方法。
我是否應該使用RepositorySystem及其方法collectDependencies并導航結果圖,并僅獲取根的子項,我猜這實際上是直接依賴項?我沒有更直接、不棄用的方法嗎?
uj5u.com熱心網友回復:
這是基于快速搜索,有一個名為 Aether 的現有 API。它的檔案不是很好。
其中的方法被呼叫:getDependencies()它根據javadoc檢索直接依賴關系。
https://maven.apache.org/resolver/maven-resolver-api/apidocs/org/eclipse/aether/resolution/ArtifactDescriptorResult.html
github上有一個例子:
public class GetDirectDependencies
{
public static void main( String[] args )
throws Exception
{
System.out.println( "------------------------------------------------------------" );
System.out.println( GetDirectDependencies.class.getSimpleName() );
RepositorySystem system = Booter.newRepositorySystem();
RepositorySystemSession session = Booter.newRepositorySystemSession( system );
Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" );
ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
descriptorRequest.setArtifact( artifact );
descriptorRequest.setRepositories( Booter.newRepositories( system, session ) );
ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );
for ( Dependency dependency : descriptorResult.getDependencies() )
{
System.out.println( dependency );
}
}
}
https://github.com/1984shekhar/fuse-examples-6.2/blob/master/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514508.html
標籤:爪哇行家
上一篇:如何在不使用SpringBoot的單元測驗失敗的情況下建立資料庫連接?
下一篇:找不到semver4j-0.16.4-nodeps.jar(com.github.gundy:semver4j:0.16.4)。-安卓作業室Java
