2017-08-31 22 views
1

私のMavenのアーキタイプ定義では、ユーザーが何も入力しなかったときにデフォルトのバージョンを0.0.1-SNAPSHOTに設定したいと思います。しかし、アーキタイプに基づいてプロジェクトを作成すると、私は常にバージョンの入力を求められ、デフォルトは1.0-SNAPSHOTです。カスタムmaven archetype:バージョンのデフォルト値が使用されていません

これを正しく行うにはどうすればよいですか?

archetype.propertiesファイルにversionプロパティを定義しました。archetypeをコンパイルすると、正しいバージョンが示され、archetype.propertiesの値を変更すると、コンソール出力がそれに応じて変化することがわかります。

アーキタイプに基づいてプロジェクトを作成するだけで、バージョンの再入力を求められます。

ありがとうございました!

(必要であれば、私はコードを提供します)

+0

あなたのarchetype-metadataスキーマは何ですか? – nullpointer

+0

'-Dversion = 0.0.1-SNAPSHOT'を指定しないとどうなりますか? – nullpointer

+0

@nullpointerよく私は、ユーザーが-Dversionを指定しない場合、フォールバックを使用すると考えました。または、常に - 強制的に強制的に使用していますか? – user3629892

答えて

3

あなたは原型メタデータあなたにカスタムプロパティを定義することができます。 META-INF/mavenarchetype-metadata.xmlをご覧ください。たとえば:the docs

<requiredProperties> 
    <requiredProperty key="version"> 
     <defaultValue>0.0.1-SNAPSHOT</defaultValue> 
    </requiredProperty> 
<requiredProperties> 

詳細:versionため

my-archetype 
| 
+ src 
    | 
    + main 
    | 
    + resources 
     | 
     + META-INF 
     | 
     + maven 
      | 
      + archetype-metadata.xml 

カスタムプロパティは次のようになります。

あなたは上記の構成で原型を参照mvn archetype:generateコマンドを実行すると、コンソール出力でこれが表示されます:

[INFO] Using property: version = 0.0.1-SNAPSHOT 

それとも、あなたはパラメータ-Dversion=FOOmvn archetype:generateコマンドを実行した場合、あなた'LLコンソール出力でこれを参照してください。

[INFO] Using property: version = FOO 

注:このバージョンは、もちろん、MODULのバージョンではなく、原型自体のバージョンを定義archetypeVersionから分離されていますe は、原型でを生産しました。

+0

requiredParametersではなくrequiredPropertiesを意味していませんか? – user3629892

+0

おっと、はい。私は答えを更新しました。ありがとう。 – glytching

+0

さて、まずは感謝します:)しかし、私はgroupIdとパッケージに対して同じことをしましたが、それらのために私にプロンプ​​トを表示し続け、archetype自体のgroupIdをデフォルト値として使用します。しかし、生成されたpomでは、groupIdが正しく表示されます(文字列置換を行うことでartifactIdを生成します)。私はまだ何が見当たりませんか? – user3629892

関連する問題