![](/img/trans.png)
[英]maven-compiler-plugin: change <outputDirectory> per execution
[英]Controlling Maven plugin inheriting per execution
我有一個項目,它由一個父 POM 和一個模塊(我們稱之為“lib”)組成。 在父 POM 中,我定義了一個具有兩個執行的插件(以前只有一個)。 其中一個執行(新的)必須由模塊繼承,另一個不能。
所以目前的結構是這樣的:
<module>lib</module>
)../pom.xml
) 我曾經在插件配置中有<inherited>false</inherited>
; 這顯然不再起作用了。
我定義了一個配置文件build-this
來調用構建,我想也許只是拆分插件配置,配置文件中的一個<plugin>
塊與<inherited>false</inherited>
和主<build>
塊(在所有配置文件之外),但似乎<inherited>false</inherited>
是在插件塊合並之后應用的,而不是之前。
如何通過執行控制插件 inheritance?
我有一個想法,它過於復雜並且會導致相當多的工作,但它可能會:
<relativePath>parent/</relativePath>
(而不是隱式<relativePath>../</relativePath>
)來查找其父 POM<modules>
以及所有不得繼承的插件調用添加到頂級 POM 並將它們從新父模塊中刪除<relativePath>../parent/</relativePath>
添加到 lib 模塊的 POM 中,使其找到其父 POM所以這:
parent/pom.xml
; <module>parent</module> <module>lib</module>
)../parent/pom.xml
)這看起來好聽嗎? 它仍然有點落后(特別是因為它會導致將新的頂級 POM 安裝到 Maven Central 中¹),因此仍然歡迎使用更好的方法來處理這個問題。
① 我可能會嘗試這個技巧或者更好的方法來避免這種情況……鑒於新的頂級 POM 沒有在任何地方被引用並且不會產生任何東西……哦,也許它會……嗯……解開這個看起來很有趣(這是為什么我更喜歡不太復雜的解決方案)
大多數插件都有<skip>
參數。 如果您的插件是這種情況,您可以定義兩個屬性,如<skip.firstexecution>
和<skip.secondexecution>
並將它們放入相應執行的配置中,如<skip>${skip.firstexecution}</skip>
.
然后,您可以通過將此屬性設置為true
來跳過模塊中的執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.