【问题标题】:A Maven plugin which displays its own dependencies显示其自身依赖项的 Maven 插件
【发布时间】:2013-06-13 21:48:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: maven-plugin


    【解决方案1】:

    您可以通过注入直接获取插件工件:

    /** 
     * @parameter default-value="${plugin.artifacts}" 
     */
    protected List<org.apache.maven.artifact.Artifact> pluginArtifacts;
    

    【讨论】:

      【解决方案2】:

      您可以通过将其放入插件中来获得对 maven 项目的引用:

      /**
       * @parameter expression="${project}"
       * @required
       * @readonly
       */
      private MavenProject project;
      

      从项目中,您几乎可以获得包括项目依赖项在内的所有内容。

      【讨论】:

      • 我知道 MavenProject。但是,它似乎只包含有关当前 Mojo 正在运行的项目的数据。反对,我正在寻找有关当前正在执行的 Mojo 的数据。
      • 谢谢,但当前执行上下文的工件列表不是我想要的。
      【解决方案3】:

      我找到了解决问题的方法:

      @Component
      private MojoExecution execution;
      
      public void execute() throws MojoExecutionException, MojoFailureException {
        for (Artifact artifact : (Collection<Artifact>) execution.getMojoDescriptor().getPluginDescriptor().getArtifacts()) {
          getLog().info("Artifact: " + artifact);
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-23
        • 2015-09-10
        • 2016-05-16
        • 2018-02-27
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多