2

git の別のリモート プロジェクトに依存する Maven プロジェクトがあります。を追加しました

<scm>
    <connection>scm:git:git@github.com:MY-Group/my.project.git</connection>
    <url>https://github.com/MY-Group/my.project</url>
</scm>

私の現在のプロジェクトpom.xmlに。

私が行うmvn scm:checkoutと、プロジェクトはターゲット/チェックアウトフォルダーにダウンロードされます。

私がやりたいことは、オーバーライドmvn installすることです

  1. 最初にこのリモート プロジェクトをターゲット フォルダにチェックアウトします
  2. このリモート プロジェクトをターゲット フォルダーからビルドしてインストールする
  3. 次に、現在のプロジェクトをビルドします

これは可能ですか?もしそうなら、どうすればこれを達成できますか?どんな助けでも

4

2 に答える 2

0

コメントでkhmarbaiseの回答を詳しく説明すると、プロジェクト間のチェックアウトとビルドの依存関係の種類は、Mavenが意図したものではありません、自動ビルドシステムであり、Mavenリポジトリはうまく機能します。

ArtifactoryNexusなどの Maven リポジトリは、Maven Central のプライベート バージョンのように機能します。

Jenkinsは継続的インテグレーション システムです (既に実行されていることを願っています)。Jenkins を構成して、変更がないか SCM サーバーをポーリングし、変更が検出されたときにビルドを開始できます。Jenkins は Maven を使用してアーティファクトをビルドし、それをプライベート リポジトリにデプロイします。Jenkins は、プロジェクト間の依存関係を理解し​​、上流のプロジェクトが変更された後に下流のビルドを開始することもできます。

これは、Maven プロジェクトのコレクションを処理する「正しい」方法であるだけでなく、プロジェクトのサイズが非常に大きい場合に時間を節約できます。非常に大きなコア サーバー コードがあり、サーバーと対話するインターフェイスを作成しているとします。元の質問では、サーバーを変更するつもりはありませんが、インターフェースコードで作業するには、サーバーをチェックアウトしてコンパイルする必要があります。Jenkins にサーバーを構築してもらうことをお勧めします。サーバー プロジェクトで作業する人はそれをチェックアウトして編集し、サーバー プロジェクトに依存する人はプライベート リポジトリからビルドされたアーティファクトを取得します。

于 2013-03-17T03:29:19.077 に答える
0

Apacheアーカイブを使用し、問題は解決しました

于 2013-03-18T06:35:42.187 に答える