5

部分的なアーキタイプを作成してcustom-pom.xml、他のリソースと同様に既存のプロジェクトに追加したいと考えています。カスタム pom は、生成されたプロジェクトで を介して使用されmvn -f custom-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]

テストとして、ダミーを作成し、ゴールarchetype-resources/pom.xmlを再実行しました。generateこれにより、次が生成されます。

[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。ただし、私たちは Archetype 2.0x 標準を使用しています。これがおそらく、この戦術がその作成者には機能するが、私たち自身には機能しない理由です。

どうすればこの問題を解決できますか? 部分的なアーキタイプは既存の Maven プロジェクトにリソースを挿入するのに適していませんか? プロジェクトは非 Maven でなければなりませんか?

Maven Archetype プラグイン 2.2 のドキュメントを精査しましたが、部分的なアーキタイプとその特殊な動作についてはほとんど言及されていません。

4

3 に答える 3

4

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

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

ソースコードを調べた後、マージが発生する必要があることを確認しました。

于 2013-01-02T12:59:09.393 に答える