2012-04-19 82 views
3

我創建一個Maven原型。在這裏,我有一個原型項目,當用戶調用以下命令時爲用戶創建:Maven原型創作:原型POM

mvn archetype:generate -DarchetypeGroupId = xxx -DarchetypeArtifactId = archtype-yyyy -DarchetypeVersion = 1.1.0-S5-SNAPSHOT -DgroupId = ZZZ -DartifactId = proj11

在原型POM,我想使用我在上述命令正在指定「archetypeVersion」屬性。像這樣:

<dependencies> 
    <dependency> 
     <groupId>mmmm</groupId> 
     <artifactId>nte</artifactId> 
     <version>${archetypeVersion}</version> 
    </dependency> 

這不適用於我。當創建項目時,它仍然在生成的pom中顯示依賴片段,就像它在上面發佈一樣。它不會取代它。

這可能嗎? maven是否允許這樣做? 如果是,我該怎麼辦?

回答

2

我想簡單的方式做,這是使用Maven的替代品的插件。你必須添加下一節到二原型/pom.xml:

<build> 
    ... 
    <plugins> 
     <plugin> 
      <groupId>com.google.code.maven-replacer-plugin</groupId> 
      <artifactId>replacer</artifactId> 
      <version>1.5.2</version> 
      <executions> 
       <execution> 
        <phase>prepare-package</phase> 
        <goals><goal>replace</goal></goals> 
       </execution> 
      </executions> 
      <configuration> 
       <file>target/classes/archetype-resources/pom.xml</file> 
       <replacements> 
        <replacement> 
         <token>\$\{archetypeVersion\}</token> 
         <value>${version}</value> 
        </replacement> 
       </replacements> 
      </configuration> 
     </plugin> 
    </plugins> 
    ... 
<build> 

即該代碼替換「$ {} archetypeVersion」子以原型的當前版本。你「/src/main/resources/archetype-resources/pom.xml」包含下一依賴性:

<dependency> 
    <groupId>xxxx</groupId> 
    <artifactId>yyyy</artifactId> 
    <version>${archetypeVersion}</version> 
</dependency> 

執行「MVN安裝」命令,生成的文件「/目標/班/原型資源/ POM後.xml'將包含原型版本號。現在你已經安裝了原型並可以使用它:'mvn archetype:generate ...'。