我使用maven幾個子模塊是建立完全相同的方式Java項目建設:有可執行的JAR文件,在lib目錄下的依賴罐子,一些資源等如何在maven中創建可重用的構建配置?
模塊之間的配置不同,只有在主類。所以,我想創建一些預配置的構建(或宏,或其他),以便不將相同配置的構建插件複製到不同的pom.xml模塊,而是重複使用與main-class相同的配置作爲參數。
我該如何做到這一點?
(建築結構:http://pastebin.com/9Fm5rFK7)
我使用maven幾個子模塊是建立完全相同的方式Java項目建設:有可執行的JAR文件,在lib目錄下的依賴罐子,一些資源等如何在maven中創建可重用的構建配置?
模塊之間的配置不同,只有在主類。所以,我想創建一些預配置的構建(或宏,或其他),以便不將相同配置的構建插件複製到不同的pom.xml模塊,而是重複使用與main-class相同的配置作爲參數。
我該如何做到這一點?
(建築結構:http://pastebin.com/9Fm5rFK7)
你可以使用Maven properties參數它們,覆蓋它們之後是inherited。在你的情況下,你可以引入mainClass屬性,並在父模塊的插件配置中使用它,例如<mainClass>${mainClass}</mainClass>
。這個屬性可以在子模塊中被覆蓋。編輯:
對於父pom,我指的是插件管理部分(對不清楚)。我在這裏創建了一個構建配置的示例: https://gist.github.com/ceilfors/5827916
我認爲這是您可以在子模塊中獲得的最小值。由於罐子包裝類型,因此maven-jar-plugin
是可選的。請參閱lifecycle bindings,您可以看到該插件將在package
階段被調用。
此外,當您的項目變得更加複雜時,您可以探索如何merge插件配置。我在這裏創建了另一個示例:https://gist.github.com/ceilfors/5828039。請注意,未使用mainClass的屬性。
希望這會有所幫助。
[Maven - Inheritance](http://maven.apache.org/pom.html#Inheritance)是這樣的嗎? – atomman
我使用繼承(對於依賴性和基本構建配置(如源代碼級別)),但我無法將其用於構建配置:maven試圖將其用於「父項目」(爲此無法應用此規則),並且未能建立。 – Daniil
您能否提供一些來自您的pom.xml文件的摘錄,或者是您的項目結構草圖?另一個選擇是[創建一個自定義的Maven插件](http://maven.apache.org/guides/plugin/guide-java-plugin-development.html) – noahlz