maven-release-plugin を使用して非オリジンにタグ付けしてコミットする

StackOverflow https://stackoverflow.com/questions/2624009

質問

プロジェクトをリリースするときは、通常の開発時よりも幅広い人々とソースを共有したいと考えています。コードは Git リポジトリ経由で共有されます。これを行うために、次のものを使用しました。

  • リモートパブリックリポジトリ - リリースされたコードは毎週ここにプッシュされます (http://example.com/public)
  • リモートのプライベート リポジトリ - 非リリース コードが毎日ここにプッシュされます (http://example.com/private)

私のローカル git リポジトリでは、次のリモートが定義されています。

origin  http://example.com/private
public  http://example.com/public

現在、ビルドのバージョン管理を管理し、コードのタグ付けとパブリックリポジトリへのプッシュを管理するように maven-release-plugin を構成しようとしています。pom.xml では、次のように <scm/> をリストしました。

<scm><connection>scm:git:http://example.com/public</connection></scm>

(この行を削除すると、mvn release:prepare が失敗します)


ただし、電話をかけるときは、

mvn release:clean release:prepare release:perform

Maven が呼び出す

git push origin tagname

POM で指定された URL にプッシュするのではなく、

したがって、質問は次のとおりです。

  1. ベストプラクティス:プライベート リポジトリ (オリジン) でタグ付けしてコミットし、手動でパブリックにプッシュするだけでよいでしょうか?
  2. Maven をデフォルトのオリジンではなく、選択したリポジトリにプッシュさせることはできますか?これは、<scm/> の <connection/> 要素の要件によって暗示されているように感じました。
役に立ちましたか?

解決

scm.connectionリポジトリはバージョンのMaven放出-プラグイン(または関連するgitのプラグイン)を2.0に固定されている原点に異なる場合解放。このバージョンに変更するには、私は私のPOMに次を追加します:

<project>
    ...
    <build>
        <plugins>
            ...
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            ...
        </plugins>
    </build>
    ...
</project>


ちなみに、Mavenは2.0より新しいものとしてMavenをリリース - プラグインのバージョン2.0ベータ-9を拾った。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top