ねえ、
私はこの構造のMavenプロジェクトを持っています:
親:
したがって、最初に親モジュールを実行し、次にAPIをビルドするモジュールを実行し、次にAPIに依存するモジュールを実行し、次にテストするツールを含むテストモジュールを実行し、最後にいくつかをパッケージ化するアセンブリ/ディストリビューションを実行しますアーカイブ内のモジュール。いくつかの問題のために、私は実際に方法を変えることができず、それは今のところ完璧に機能します。
Jenkinsを使用して、Mavenリポジトリにリリースしますが、たとえばAPIといくつかのモジュールのみをリリースし、テストモジュールと配布モジュールはリリースしません。それらをスキップする方法はありますか?私が本当に必要としないものをリリースしたくない:/
あなたを正しく理解するために、あなたはまだテストモジュールを実行したいが、それらをデプロイ/リリースしたくない。 maven-deploy-plugin 救助に!アーティファクトは引き続きビルドされますが、デプロイされません。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
ただし、jenkinsリリースプラグインは引き続きすべてのアーティファクトをリリースします。 jenkinsリリースプラグインを使用する代わりに、 maven-release-plugin でリリースすることを検討してください。これは簡単に実行できます。
mvn release:prepare
mvn release:perform
デフォルトの目標 はdeploy
とsite
なので、すべて問題ないはずです。
ルートpomにscm
タグがあることを確認してください。
<scm>
<connection>scm:svn|git:https://...</connection>
<developerConnection>scm:svn|git:https://...</developerConnection>
</scm>
また、バージョン管理ツールコマンド(git、svn、...)がPATHで利用可能であること。
Mavenコマンドラインオプションを追加して、jenkinsに組み込まれるモジュールを指定できます。
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
アグリゲータープロジェクトの目的は、単純なプロジェクトの建築要件を組み合わせることです。基本プロジェクトの建築要件が異なる場合は、新しいアグリゲータープロジェクトを追加することを検討してください。
現在のアグリゲータープロジェクトでMavenリポジトリーへのデプロイを無効にし、デプロイするモジュールのみを含む新しいアグリゲータープロジェクトを作成します。
この新しいプロジェクトをJenkinsに追加し、元のプロジェクトに依存させて、リポジトリにデプロイされるように構成します。