2016-08-01 7 views
2

バージョン範囲を使用するプロジェクトのマスターPOMを宣言すると、最新バージョン(SNAPSHOTを含む)に解決されます。リリースする決意を下す方法はありますか?最新の代わりにリリース親pomを取得するにはどうすればよいですか?

プロジェクト内の親POM宣言:

<parent> 
    <groupId>my.company</groupId> 
    <artifactId>my-company-pom</artifactId> 
    <version>(,2.0.0]</version> 
</parent> 

親POMメタデータファイル

<metadata> 
    <groupId>my.company</groupId> 
    <artifactId>my-company-pom</artifactId> 
    <version>1.0.1</version> 
    <versioning> 
    <latest>1.3.0-SNAPSHOT</latest> 
    <release>1.2.0</release> 
    <versions> 
     <version>1.0.0</version> 
     <version>1.0.1-SNAPSHOT</version> 
     <version>1.0.1</version> 
     <version>1.1.0</version> 
     <version>1.2.0</version> 
     <version>1.3.0-SNAPSHOT</version> 
    </versions> 
    <lastUpdated>xxxxxxxxxxxx</lastUpdated> 
    </versioning> 
</metadata> 

Mavenは1.3.0-SNAPSHOTの代わりに、1.2.0に親POMのバージョンを解決するのはなぜ?

+0

あなたが意味するマスターpomは、マルチモジュールビルドまたは一般的なマスターpomファイルの場合のみですか?明示的なバージョンを書き留めていないのは何ですか?範囲が必要なのはなぜですか? – khmarbaise

答えて

1

hereが表示されているように、私にとっては非常に古くてよく知られている論争のバグです。実際の有効な回避策がないので、あなたの最高のオプションはあなたのケースでバージョン範囲を全く使用しないことです。

0

あなたは1.3.0-SNAPSHOTを設定しているので、この行(親ポンポンのメタデータXMLファイル内の6番目の行)

<latest>1.3.0-SNAPSHOT</latest> 
+0

スナップショットに最新バージョンを設定しないようにするにはどうしたらいいですか? mvn deployを使用してmavenリポジトリに追加されました。 –

0

にあなたがこの問題を解決するためのカスタムリポジトリ定義でのスナップショットのバージョンを除外することができ、最新のものです。

<repositories> 
<repository> 
    <id>codehaus</id> 
    <name>codehaus</name> 
    <releases> 
    <enabled>true</enabled> 
    </releases> 
    <snapshots> 
    <enabled>false</enabled> 
    </snapshots> 
    <url>http://snapshots.maven.codehaus.org/maven2</url> 
    <layout>default</layout> 
    </repository> 
</repositories> 

Mavenはスナップショットを「参照」しません。もちろん、あなたのレポに設定(URLなど)を適応させる必要があります。

関連する問題