2012-03-12 21 views
2

maven-release-pluginを使用して、Mavenコンポーネントをリポジトリにリリースします。しかし、これらのコンポーネントのいくつかは、いくつかの依存関係の範囲を使用します。 (スナップショットはオプションではない)リリースプラグインを使用してリリース中の範囲を解決する方法

リリースプラグインを使用すると、範囲がscmでチェックされ、私たちのmavenリポジトリにデプロイされます。これは、mavenリポジトリ内の未解決のpomファイルがあるビルドの別のビルド変更を他のビルドへ確実に変更できるようになる(そしてそうする)ことができるので、意味をなさない。

release:prepare-with-pomを使ってみましたが、scm(release-pom.xml)にコミットされた新しいpomファイルが作成されました。範囲を持つ元のpomは依然としてrepoにデプロイされています。

別の問題として、次の開発リリースの範囲を維持したいと思います。だから私たちの頭と体は解決してはいけません。

私はこれを間違った方法で行っていると感じています。

誰でも問題の解決にご協力いただけますか?これを行う他の方法がある場合は、あなたの提案に感謝するでしょう。

+0

質問は次のとおりです。スナップショットはオプションではないのはなぜですか?特に、依存関係については、そのような状況のためのものです。 – khmarbaise

+0

この場合、Mavenによってモジュールが生成されないため、スナップショットはオプションではありません。一般的なスナップショットを使用するのが正式なテストを行っているシステムの場合は、このトピックの範囲外です。 –

答えて

1

私は2つの既知のmavenリリースプラグインのバグに遭遇しました。以下のバグレポートを参照してください。

これらは次のようにバージョン2.2.3または2.3を編集

のmaven-リリース - プラグインの中にリリースされる予定されています投稿されたコメントへの応答: 私はこれらのバグが私の問題を解決する理由は明らかではないことに同意します。私は精緻化しようとします。

解決済みのpomファイルを使用して展開するには、release:prepare-with-pomを使用してからrelease:performを使用する必要があります。解決済みのpomファイルの展開を実行するには、config内のpomFileNameをrelease-pom.xmlに設定する必要があります。そうでなければ、未解決のpom.xmlをデプロイします。範囲を持つpomファイルを配備するのは良い考えではありません。これが618が必要な理由です。

release-pom.xmlはタグでのみチェックインされるため、727が必要です。リリースを実行するとき:あなたのタグがターゲットディレクトリでチェックアウトされていることを実行します。プラグインがモジュールのルートディレクトリにあるrelease-pom.xmlを探しているので、空になってしまいます。これはpomFileNameの設定がなくても間違っている可能性がありますが、あまりありません。

範囲はバグであり、Mavenはデフォルトで解決されたpomファイルを展開しないため、一般的にMavenでは悪い考えです。 Mavenが常に解決されたpomファイルを展開すれば、範囲が良いでしょう。

+0

これらのバグがあなたの質問に関連していると考える理由は明らかではありません。答えを拡大できますか? –

+0

618も727も、上記の問題に関連していません。 – khmarbaise

+0

上記の問題は、悪い習慣である依存関係におけるバージョン範囲の使用と、前述のような結果に基づいて発生します。 – khmarbaise

関連する問題