鉴于Maven工件(groupId:artifactId:version),我如何以编程方式查询其依赖项? (我不需要实际检索任何工件,只需要依赖信息。)
编辑添加我想在Maven插件之外执行此操作,并且我想构建一个依赖关系图。
答案 0 :(得分:1)
如果你正在使用maven插件(即:扩展AbstractMojo),你可以执行以下操作:
/**
* @parameter expression="${project}"
*/
private org.apache.maven.project.MavenProject mavenProject;
List<org.apache.maven.model.Dependency> depmgtdeps = mavenProject.getDependencyManagement().getDependencies();
这将为您提供它检测到的实际依赖项对象。 MavenProject类还有许多其他方法可用于读取各种与pom相关的内容。但是,我不认为这可以在插件之外工作,或者至少,我从未尝试过这样做。
答案 1 :(得分:1)
我发现这两个链接很有用..
答案 2 :(得分:1)
以下groovy脚本使用ivy来解决依赖关系
import groovy.xml.NamespaceBuilder
// Main program
// ============
def ant = new AntBuilder()
def ivy = NamespaceBuilder.newInstance(ant, "antlib:org.apache.ivy.ant")
ivy.resolve(
inline:true,
keep:true,
conf:"default",
organisation:"org.springframework",
module:"spring-core",
revision:"3.1.1.RELEASE",
)
ivy.report(toDir:"reports")
生成HTML报告和graphml文件:
|-- report.groovy
|-- reports
| |-- ivy-report.css
| |-- org.springframework-spring-core-caller-default.graphml
| `-- org.springframework-spring-core-caller-default.html