2012-11-07 82 views
2

我目前正在爲我們的項目更新Maven原型,並希望減少用戶在使用此原型時必須提供的信息數量。比如,groupId總是相同的。是否可以在Maven原型中爲groupId定義默認值?

那麼,是否有可能爲Maven原型中的groupId定義默認值?

+0

[Creating Maven Archetype:有沒有辦法指定一個默認的groupId](http://stackoverflow.com/questions/14879455/creating-maven-archetype-is-there-a-way-to-指定-a-default-groupid) – gvlasov

回答

4

如果您在固定組織中工作,此值不會在每個項目的基礎上更改:使用父POM。通過你的存儲庫分發它(你使用某種中央存儲庫,即使它只是一個網絡驅動器,是嗎?)。

包括在項目

<artifactId>greattool</artifactId> 
<packaging>war</packaging> 
<parent> 
    <groupId>com.example</groupId> 
    <artifactId>master-parent-pom</artifactId> 
    <version>0.0.1</version> 
</parent> 

父POM

<groupId>com.example</groupId> 
<artifactId>master-parent-pom</artifactId> 
<version>0.0.1</version> 
<packaging>pom</packaging> 
<description>Parent POM for our projects, specific project type POMs derive from this.</description> 

所以在項目POM沒有組ID,從POM將使用父之一。當然,您將包含父POM替換組ID,但這很有幫助,因爲您可以根據組織的特定需求進一步自定義Maven。

如果您使用構建和測試服務器,您甚至可以將父母的version設置爲-SNAPSHOT,以便自動將父POM中的更改分發到項目POM。

+0

當然。公司範圍的父pom對指定可能使用的庫和插件的默認版本也非常有用,從而使構建可重複。 – AutomatedMike

+0

如果目的是「減少用戶在使用這個原型時必須提供的信息的數量」,這個答案可能不是那麼精確。即使使用公司母公司POM,在使用原型時仍然會要求用戶提供groupId。 – rafaelrezend

相關問題