一个Maven插件,显示自己的依赖项

时间:2013-06-11 12:30:31

标签: maven-plugin

如何在执行时动态获取Mojo(我正在开发)的依赖项列表?

据我所知(但我可能会遗漏一些东西,显然),Mojo似乎可以获得的唯一信息是关于调用该插件的MavenProject。

澄清更新:我正在寻找正在运行的Mojo的数据,而不是Mojo所针对的项目。

3 个答案:

答案 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);
  }
}