4

プロジェクトのリリースを行うときは、開発中に通常行うよりも幅広いグループの人々とソースを共有したいと思います。コードは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/>要素の要件によって暗示されていると感じました。
4

1 に答える 1

4

scm.connectionリポジトリがオリジンと異なる場合のリリースは、バージョン2.0のmaven-release-plugin(または関連するgitプラグイン)で修正されています。このバージョンに変更するために、POMに以下を追加しました。

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


ちなみに、Mavenはmaven-release-pluginバージョン2.0-beta-9を2.0よりも新しいものとして取り上げていました。

于 2010-04-13T17:57:16.867 に答える