我有一個由幾個子模塊組成的maven項目。構建一個子模塊後執行maven插件
我們稱之爲子模塊shared
和webapp
。該項目通常由位於父目錄中的父POM構建。所以目錄佈局看起來像:
myproject/pom.xml
myproject/shared/pom.xml
myproject/webapp/pom.xml
我有一個特定的插件,我想從頂層目錄中的命令行可執行。我不希望它在任何階段默認運行。所以通常我想運行mvn clean install
,在這種情況下插件不應該執行。但是我也希望能夠說0123'並且執行應該在這種情況下運行,但是執行應該只運行一次webapp
子模塊。當我在命令行中指定此操作時,不應爲父POM或shared
子模塊執行該執行。
我遇到的問題是,如果我在父POM中定義執行,它會爲每個子模塊重複運行。如果我在webapp
POM中定義執行,則無法通過Maven的命令行調用進行訪問。
我想在一個Maven的COMAND做到這一點和單指令還必須能夠建立&運行階段的所有子模塊 - 不僅僅是webapp
子模塊 - 因此-pl
命令行選項不起作用對於這種情況?
這種事可能嗎?如果這是不可能的,我會接受一個答案說明。
在webapp中創建一個配置文件,並通過激活的配置文件運行它。否則,我不明白爲什麼你需要從命令行和構建內運行這個插件? – khmarbaise
@khmarbaise是對的,這絕對是你想要的。只需在webapp中創建一個單獨的配置文件,將您的目標設爲您想要的任何階段,然後使用已定義的配置文件從父項運行mvn命令。 -P選項甚至傳播到子模塊。 – jholusa
配置文件方法工作得非常好,可以讓我從頂層POM訪問執行 - 謝謝。然而,我找不到一個解決方案,它允許我從命令行**調用執行,而沒有將它綁定到一個階段。我想知道這是否可能。 – amoe