簡體   English   中英

將mojo添加到另一個Maven插件定義的自定義生命周期中

[英]Add mojo to custom lifecycle defined by another maven plugin

我正在使用一個maven插件,該插件為我的項目定義了自定義包裝類型和生命周期。 讓我們稱這種包裝為“ foo”,由“ foo-plugin”定義。 我無法控制上述插件,但是我想在插件中擴展其生命周期定義。

我正在編寫另一個插件,讓我們稱其為“ bar-plugin”。 我希望在具有“ foo”包裝的項目的過程源階段中調用我的插件的某個目標。 在任何其他情況下都不會。 我已經定義了在流程源階段執行的mojo,但這使它可以在任何項目的流程源階段執行,而不僅僅是打包“ foo”的項目。

/**
 * @goal bar
 * @phase process-sources
 */
public class BarMojo extends AbstractMojo

我還嘗試使用自定義生命周期定義來擴展現有生命周期,如下所示:

<component-set>
  <components>
    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>foo</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <phases>
          <process-sources>${groupId}:${artifactId}:${version}:bar</process-sources>
        </phases>
      </configuration>
    </component>
  </components>
</component-set>

即使將pom中的<extensions>元素設置為true,這似乎也被完全忽略了。 甚至有可能延長使用另一個插件定義的一個插件的生命周期,如果是的話,我在做什么錯呢?

編輯:Maven項目結構如下:項目名稱(打包)
mycompany-parent(pom)
-someprojecttype-parent(pom)
--project-1(foo)
--project-2(foo)

我想將該插件添加到someprojecttype-parent,其包裝設置為pom。 這將導致在建立父項目時執行目標目標。 我只想在構建項目1和項目2時執行限制目標。

從最后一點來看,聽起來您需要將插件放入其中

<build>
    <pluginManagement>
        <plugins>

而不只是

<build>
    <plugins>

應該將執行限制在子項目中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM