我正在尝试使用org.apache.maven.project.MavenProject.
我的代码是这样的。
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);
}
Run Code Online (Sandbox Code Playgroud)
基本上,我试图获取依赖树结果,该结果通过mvn dependency:tree命令以编程方式作为列表返回。
示例 对于工件:
com.google.inject:guide:4.2.2ch.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
]
Run Code Online (Sandbox Code Playgroud)
public Set<Artifact> getArtifacts()您可以使用类的方法MavenProject,该方法返回一组表示项目具有的所有依赖项(包括传递依赖项)的工件。
注意:内容是惰性填充的,因此根据运行的阶段,某些范围内的依赖关系将不会被包含在内。例如。如果仅运行编译阶段,则不会包含范围测试的依赖项。
所有信息均来自您可以在此处找到的文档。
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |