2012-04-19 17 views
3

私はMavenのアーキタイプを作成しています。Mavenアーキタイプの作成:プロトタイプpom

MVN原型:生成-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-replacer-pluginを使用することです。あなたは/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}」部分文字列を置き換えます。結果のファイル「/ターゲット/クラス/原型-リソース/ POM、コマンドを 'MVNをインストール' を実行した後

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

:あなたの '/src/main/resources/archetype-resources/pom.xmlは、' 次の依存関係が含まれています.xml 'にはアーキタイプのバージョン番号が含まれます。これでarchetypeがインストールされ、 'mvn archetype:generate ...'を使用できます。

関連する問題