gpt4 book ai didi

java - 获取 org.apache.maven.project.MavenProject 的 maven 依赖列表

转载 作者:行者123 更新时间:2023-12-01 09:24:29 26 4
gpt4 key购买 nike

我正在尝试使用 org.apache.maven.project.MavenProject 获取一些 maven Artifact 的依赖项列表.

我的代码是这样的。

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 返回的依赖树结果以编程方式将命令作为列表。

示例
对于 Artifact :
  • 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
    ]

    最佳答案

    您可以使用方法public Set<Artifact> getArtifacts()您的 MavenProject返回一组 Artifact 的类,这些 Artifact 表示项目具有的所有依赖项,包括可传递的依赖项。

    注意:内容是惰性填充的,因此不会包含在某些范围内运行依赖项的阶段。例如。如果只运行了编译阶段,则不会包含具有范围测试的依赖项。

    所有信息都来自您可以找到的文档here .

    关于java - 获取 org.apache.maven.project.MavenProject 的 maven 依赖列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60635569/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com