[英]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.