如何在执行时动态获取Mojo(我正在开发)的依赖项列表?
据我所知(但我可能会遗漏一些东西,显然),Mojo似乎可以获得的唯一信息是关于调用该插件的MavenProject。
澄清更新:我正在寻找正在运行的Mojo的数据,而不是Mojo所针对的项目。
答案 0 :(得分:1)
您可以通过注入直接获取插件工件:
/**
* @parameter default-value="${plugin.artifacts}"
*/
protected List<org.apache.maven.artifact.Artifact> pluginArtifacts;
答案 1 :(得分:0)
通过将其放入插件中,您可以获得对maven项目的引用:
/**
* @parameter expression="${project}"
* @required
* @readonly
*/
private MavenProject project;
从项目中,您可以获得几乎所有内容,包括项目依赖项。
答案 2 :(得分:0)
我找到了解决问题的方法:
@Component
private MojoExecution execution;
public void execute() throws MojoExecutionException, MojoFailureException {
for (Artifact artifact : (Collection<Artifact>) execution.getMojoDescriptor().getPluginDescriptor().getArtifacts()) {
getLog().info("Artifact: " + artifact);
}
}