0

ソースをリリースする必要があるプロジェクトがあります。私が抱えている問題は、開発したすべてのコードのソース リリースを作成する必要があることです。コードは複数のプロジェクトにまたがっていますが、実際に使用している jar のソースのみがリリースされるように、maven を活用したいと考えています。

例えば:

  • コア コード プロジェクト (マルチ モジュール maven プロジェクト)
  • Web アプリ プロジェクト (マルチ モジュール Maven プロジェクト)。アプリ モジュールと、いくつかのサポート jar モジュールが含まれています。コア コード プロジェクトのいくつかの jar に依存します。

次に、Web アプリ プロジェクトのすべてのソースをリリースしますが、Web アプリが使用するコア コード プロジェクトのソースのみをリリースします。

Mavenでこれを行うことはできますか?

アセンブリ プラグインとソース プラグインで可能だと感じていますが、これをどのように組み合わせるかは明確ではありません。

4

3 に答える 3

3

まず第一に、あなたの質問は少し不明確です。特定のことを想定して先に進みましょう。以下はあなたのフォルダ構造だと思います。

  • Webアプリプロジェクト
    • いくつかのソースコードフォルダ
    • pom.xml
  • コアコードプロジェクト
    • いくつかのソースコードフォルダ
    • pom.xml

コアコードプロジェクトを取得し、pom.xmlで以前のバージョンからバージョンを変更します。1.0だったら1.1に変えてみよう

<groupId>コアコードプロジェクト関連</groupId>
  <artifactId>コアコードプロジェクト</artifactId>
  <name>コアコード</name>
  <バージョン>1.1</ version>

コアコードプロジェクトでWebアプリプロジェクトに対応するように変更を加えます。

後で、Webアプリプロジェクトで、pom.xmlにコアコードプロジェクトの依存関係を追加します

  <依存関係>
     <groupId>コアコードプロジェクト関連</groupId>
     <artifactId>コアコードプロジェクト</artifactId>
     <name>コアコード</name>
     <バージョン>1.1</ version>
  </依存関係>

このように、コアプロジェクトの1.1バージョンには、Webアプリ関連のコードのみが含まれます。現在、この方法を使用しています。それが役に立てば幸い。他に何か必要な場合はお知らせください。

于 2010-11-11T05:12:38.577 に答える
1

アセンブリ プラグインとソース プラグインを使用すれば可能だと思いますが、これを組み合わせる方法が明確ではありません。

質問を正しく理解した場合、1 つの解決策は、必要なすべてのモジュール (webapp の関連モジュールとコアの関連モジュール) をリストする「アグリゲーター」プロジェクトを作成し、 Maven Source Pluginsource:aggregateの目標を使用することです。

于 2010-11-11T17:11:21.900 に答える
0

なぜこれを行う必要があるのか​​ わかりません.Webアプリプロジェクトのpomには、使用されているコード依存関係のバージョンが明示的にリストされるため、ソースを簡単に見つけることができます. 同じアーティファクトを 2 回保存したいようです。Web アプリが使用し、実際の Web アプリ ソースに加えて、これらの両方のコア jar からのソースを含む Web アプリ ソース アーティファクトを生成するcore-x-1.2.3.jarとしたら?core-y-4.5.6.jar

Maven バージョン プラグインを使用して、コア依存関係の最新バージョンを使用するように Web アプリ pom を更新できます。過去に CI サーバーでシェル スクリプトを実行して自動化しました。つまり、Web アプリの新しいバージョンをリリースするたびに、コア コードの最新リリースを使用することになり、Web アプリの pom をバージョン管理から更新するだけで済みます。

于 2010-11-11T17:10:23.703 に答える