簡體   English   中英

獲取 org.apache.maven.project.MavenProject 的 maven 依賴列表

[英]Get list of maven dependencies of org.apache.maven.project.MavenProject

我正在嘗試使用org.apache.maven.project.MavenProject獲取一些 maven 工件的依賴項列表。

我的代碼是這樣的。

public List<Dependencies> loadProject() {
    Model mavenModel = new Model();
    mavenModel.setModelVersion("4.0.0");
    mavenModel.setGroupId("org");
    mavenModel.setArtifactId("wso2");
    mavenModel.setVersion("1.0.0");

    addDependency(mavenModel, "com.google.inject", "guice", "4.2.2");
    addDependency(mavenModel, "ch.qos.logback", "logback-classic", "1.2.3");

    MavenProject mavenProject = new MavenProject(mavenModel);

    //******* Need to resolve dependencies of `mavenProject` and *******
    //******* get the list of dependencies of this project.    *******

    return dependencies;
}

private static void addDependency(Model mavenModel, String groupId, String artifactId, String version) {


Dependency dependency = new Dependency();
    dependency.setGroupId(groupId);
    dependency.setArtifactId(artifactId);
    dependency.setVersion(version);
    mavenModel.addDependency(dependency);
}

基本上,我試圖獲取依賴樹結果,該結果由mvn dependency:tree命令以編程方式作為列表返回。

示例對於工件:

  • com.google.inject:guide:4.2.2
  • ch.qos.logback:logback-classic:1.2.3

依賴列表:

List = [
com.google.inject:guice:jar:4.2.2:compile,
javax.inject:javax.inject:jar:1:compile,
aopalliance:aopalliance:jar:1.0:compile,
com.google.guava:guava:jar:25.1-android:compile,
com.google.code.findbugs:jsr305:jar:3.0.2:compile,
org.checkerframework:checker-compat-qual:jar:2.0.0:compile,
com.google.errorprone:error_prone_annotations:jar:2.1.3:compile,
com.google.j2objc:j2objc-annotations:jar:1.1:compile,
org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile,
ch.qos.logback:logback-classic:jar:1.2.3:compile,
ch.qos.logback:logback-core:jar:1.2.3:compile,
org.slf4j:slf4j-api:jar:1.7.25:compile
]

您可以使用MavenProject類的public Set<Artifact> getArtifacts()方法,該方法返回一組工件,表示項目具有的所有依賴項,包括可傳遞的依賴項。

注意:內容是惰性填充的,因此不會包含在某些范圍內運行依賴項的階段。 例如。 如果只運行了編譯階段,則不會包含具有范圍測試的依賴項。

所有信息都來自您可以在此處找到的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM