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