2013-01-02 6 views
5

custom-pom.xmlと他のリソースを既存のプロジェクトに追加するための部分的なアーキタイプを作成したいと考えています。カスタムpomは、mvn -f custom-pom.xmlを介して生成されたプロジェクトで使用されます。Maven Archetype Plugin - pom.xmlを含まない部分的なアーキタイプを使用するには?

したがって、このアーキタイプにはsrc/main/resources/archetype-resources/osgi-pom.xmlが含まれていますが、同じディレクトリにpom.xmlは含まれていません。

既存のプロジェクトでこのアーキタイプを実行するために適切にパラメータ化されたarchetype:generateを使用しました。これは、生成:試験として

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) on project standalone-pom: org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates: Unable to find resource 'archetype-resources/pom.xml' -> [Help 1] 

を、我々は再び走ったgenerate目標ダミーarchetype-resources/pom.xmlを作成しました。これは、生成します。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) on project standalone-pom: Don't override file /tmp/archetype/fabric-rf-server/pom.xml -> [Help 1] 

私たちは何のarchetype-resources/pom.xmlを持っていないthis exampleを見ました。しかし、Archetype 2.0x標準を使用していますが、これはおそらく作者が作ったものではなく、自分自身ではないのです。

この問題を解決するにはどうすればよいですか?部分的なアーキタイプは、既存のMavenプロジェクトにリソースを挿入するのには適していません。プロジェクトをMaven以外のものにする必要がありますか?

私たちはMaven Archetype plugin 2.2 documentationを精査しましたが、部分的なアーキタイプとその特殊な動作についてはほとんど言及していません。

答えて

4

OPに記載されている2番目のエラーメッセージは、競合するPOMプロパティ(artifactId,groupIdおよびversion)のためです。 archetype-resources/pom.xmlからこれらを削除すると問題が解決しました。

部分的なアーキタイプで実際に起こることは、既存プロジェクトのPOMがアーキタイプのものとマージされていることです。そのため、このプロパティの競合が原因でマージが失敗しました。

the source codeを探索した後にマージする必要があることを確認しました。 、同じ場所に同じファイルをコピーし、あなたの原型の「achetype-metadata.xml」は、重複した設定は、この問題を解決するだろう削除を確認するために構成された一つ以上の重複ファイルセット、がありますので、ファイルのエラーを上書きしないでくださいパー

+0

メイヴェンは重篤な双極性障害に苦しんでいるようです。私がarchetype-resources/pom.xmlを与えると、それは私にそれを書き直さないように伝えます。私がそれを与えなければ、それはそれが必要であると私に伝えます。私はそれを与えても空であれば、それはで始まらないと文句を言う。もし私がで始めると、それはステップ1に戻り、pom.xmlを書き直さないように指示します。このキャッチからどのように離れましたか? – kaqqao

+0

@kaqqaoわかりませんが、これはずっと前です。私はまだ作業ファイルを持っています - あなたが ''を追加すると、あなたはいつもの名前空間のguffなどをすべて含んでいると思いますか?だから私の仕事はこれで始まります: ' 4.0 .0 ' – KomodoDave

0

は、それはだ

以下のインスタンスの場合、configフォルダにtest.xmlがある場合、速度で2回処理され、2番目のプロセスでは警告が出力されます。ファイルがpom.xmlの場合、ビルドエラーが発生します。

<fileSet filtered="true" encoding="UTF-8"> 
    <directory>config/src</directory> 
    <includes> 
    <include>**/*.vm</include> 
    <include>**/*.xml</include> 
    </includes> 
</fileSet> 
<fileSet filtered="true" encoding="UTF-8"> 
    <directory>config</directory> 
    <includes> 
    <include>**/*.xml</include> 
    </includes> 
</fileSet> 
0

オーバーラップファイルセットが1つ以上あるため、ファイルエラーを上書きしないでください。

重複したファイルセットを削除すると、問題が解決します。

関連する問題