我正在使用一個maven插件,它爲我的項目定義了自定義打包類型和生命週期。讓我們稱這個包裝爲「foo」,由「foo-plugin」定義。我無法控制這個插件,但我想在我的插件中擴展它的生命週期定義。將mojo添加到另一個maven插件定義的自定義生命週期中
我正在寫另一個插件,讓我們稱之爲「酒吧插件」。我想要在「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>
元素設爲真正。甚至有可能使用另一個插件來擴展由一個插件定義的生命週期,如果是這樣,我做錯了什麼?
編輯: Maven項目結構如下:項目名稱(包裝)
myCompany的父(POM)
- someprojecttype父(POM)
- - 項目-1(富)
- - 項目2(foo)
我想將該插件添加到someprojecttype-parent,其中打包設置爲pom。這會導致在構建父項目時執行欄目標。我只想在構建項目1和項目2時執行酒吧目標。
我試圖做類似的事情。我相信我已經採取了和你一樣的步驟,但是當我嘗試構建我的項目時,我的新插件未被觸發。有什麼建議會導致什麼? – groomsy 2013-02-21 17:41:01