2016-03-31 9 views
2

私のアーキタイプに変数を追加しようとしています。具体的には、私のアーキタイプにはlogback.xmlファイルが含まれています。アーキタイプから生成しているプロジェクトの名前をログファイル名に取り込みたいとします。Mavenのarchetype.xmlとarchetype-metadata.xmlの違いは何ですか?

ここで答えの指示を行っていましたがPassing extra properties to maven archetype:generateですが、<requiredProperties>要素をarchetype-metadata.xmlに追加すると言います。私のアーキタイプにはarchetype-metadata.xmlはありません。これはarchetype.xml(maven-archetype-archetypeからアーキタイプを生成すると自動的に生成されたもの)のみです。

https://maven.apache.org/guides/mini/guide-creating-archetypes.htmlで、Mavenは、アーティファクト記述子としてarchetype.xmlを参照します。

私はgoheled archetype-metadata.xmlとこれが見つかりました - http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html。 Mavenはそれをarchetype-descriptorとも呼んでいますが、その仕様にはarchetype.xmlに表示されているidとresourcesの要素は含まれていません。

archetype.xmlとarchetype-metadata.xmlは同じですか?そうでない場合は、それぞれの目的は何ですか? archetype.xmlファイルに<requiredProperties>要素を追加できますか?または、archetype-metadata.xmlファイルを作成する必要がありますか?

+1

archetypeのテンプレートを作成する 'mvn archetype:create-from-project'から始めることをお勧めします。 –

+0

archetype.xmlは、ここで説明するスキーマに従っていると思います。https://maven.apache.org/archetype/archetype-models/archetype-registry/archetype-registry.html – devsprint

答えて

1

私が言及した記事で示唆されているようにあなたが原型記述子(原型-のmetadata.xml)を作成する必要があり、ここでPassing extra properties to maven archetype:generate

は、私はプロジェクトを生成するために実行しています手順は次のとおりです。

は、mkdir一時

CDの一時

gitのクローン[email protected]:jibbyj/appArchetype.git

CD appArchetype

ます。mkdir run01

CD run01

LS

MVN原型インストールMVNクリーン:

-DarchetypeGroupId = com.company.archetype \生成\

-DarchetypeArtif actId = appArchetype \

-DarchetypeVersion = 1.2-SNAPSHOT \

-DarchetypeCatalog =ローカル\

-DinteractiveMode = falseを\

-DgroupId = com.company \

-DartifactId =テスト\

-DappName = test

このフローが完了したら、テストフォルダに生成されたプロジェクトを見つけることができます。 pom.xmlでは、artifactIdは "test"に設定され、src/main/resources/logbackにも設定されています。xmlは置換が行われます。

+0

私がこれを行うと、私のarchetype.xmlファイルは無視され、私のアーキタイプリソースは私のプロジェクトに挿入されません... – Jibbyj

+0

archetype.xmlは使用されていません。 archetype-metadata.xmlを使用してください。とにかくあなたはプロジェクトを共有することができますか? – devsprint

+0

https://github.com/jibbyj/appArchetype.git – Jibbyj

0

上記の受け入れられた答えの主な目的は、archetype.xmlの代わりに<requiredProperties>要素と<filesets>要素を含むarchetype-metadata.xmlを使用することでした。 archetype.xmlには<resources>というタグがありました。 archetypeには<packaging>maven-archetype</packaging>も与えます。

archetype.xmlとarchetype-metadata.xmlの違いはまだ分かりません。 archetype.xmlは推奨されていないとしますか?

+0

私が参照しているドキュメントを見る限り、これはドキュメントの入力ミスであると考えられています。リンクを確認すると、archetype-metadata.xmlの説明を参照していることがわかります。 – devsprint

+0

そうは思わない。私は、https://maven.apache.org/guides/mini/guide-creating-archetypes.htmlの下部にある指示に従って、-DarchetypeArtifactId = maven-archetype-archetypeを使用してアーキタイプテンプレートを生成し、アーキタイプを作成しました。 xml、archetype-metadata.xmlではありません – Jibbyj

関連する問題