3

Maven プロジェクト/SCM シナリオで次の抽象的な操作を実現するツールはありますか?

  • アプリケーション プロジェクトを指定して、アプリケーションのブランチと、アプリケーションが使用するすべてのスナップショット ライブラリを推移的に作成します。これらのブランチは、1 つの論理ブランチとして管理できる必要があります (次を参照)。
  • アプリケーション プロジェクトの論理ブランチを指定して、それをリリースします (Maven release を実行して)。これは、ライブラリごとに 1 つずつ、複数のブランチをリリースすることを意味します

背景(オリジナル):

ご存知のように、Git はプロジェクトごとのリポジトリ構造化パラダイムの使用を推奨しています。同時に、深刻なプロジェクトはすべて、この場合は Maven ベースであり、いくつかの社内ライブラリに関連付けられています。どのスプリントでも、プロジェクトとプロジェクトが関連付けられているライブラリの両方が変更されます。Git の世界では、これは変更が複数の Git リポジトリにまたがって存在することを意味します。

スプリントで作業を分岐させたい場合、おそらく Gitflow を使用しているため、スプリントの最後にリリース ブランチを作成する必要があるため、スプリントに関与するすべてのライブラリにわたって論理的な方法でそれを行うにはどうすればよいでしょうか。 、各ライブラリを手動で分岐する代わりに?

Maven 対応ツール (POM をイントロスペクトして推移的なスナップショット依存関係リストを把握できるツール) はさらに優れています。

1 つの論理ブランチを表す複数の物理ブランチ (プロジェクトごとに 1 つ) 間に論理関係を作成できますか?

Git または一部の Git ツールは論理分岐をサポートしていますか?

あなたがサブモジュールを言わないことを願っています。ここで私が求めているのは、VCS の詳細を抽象化することであり、Git の第一人者になることではありません。また、各ライブラリを個別に分岐する必要があるとエラーが発生しやすく、忘れやすいため、可能な場合は 1 回の操作で処理を行うようにしています。

4

2 に答える 2

1

Jenkinsサーバーをセットアップします。

各 Maven モジュールを個別のプロジェクトとして構築し、スナップショットの依存関係を持つ他のプロジェクトを自動的に再構築できます。

アップデート

Jenkins の GIT プラグインには、開発機能ブランチの「マスター」ブランチまたは「統合」ブランチへの自動マージを管理する機能があります。ドキュメントを参照してください。

https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures

もう 1 つのオプションは、 Gerritなどのコード レビュー ツールを使用して機能開発を管理することです。ここでも、共有コード ストリームに統合された変更を制御するのは Gerrit であり、Gerrit を Jenkins と統合して、送信されたすべての変更セットがコード テストに合格するようにすることができます。

最後に、リリースは、標準リリース プラグインのラッパーであるM2 リリース プラグインを使用してカットされます。(つまり、Jenkins には常に 2 種類のビルドがあります。コードのコミットによってトリガーされる自動ビルドと、UI を介して明示的にトリガーされるリリース ビルドです)。

于 2013-07-16T20:17:10.003 に答える