28

ヘイホー、

私はこの構造を持つMavenプロジェクトを持っています:

親:

  • リスト項目
  • API モジュール
  • モジュール2
  • ...
  • モジュール5
  • テスト
  • 配布・組立

最初に親モジュールを実行し、次にAPIを構築するモジュールを実行し、次にAPIに依存するモジュールを実行し、次にテストするツールを含むテストモジュールを実行し、最後にいくつかをパッケージ化するアセンブリ/ディストリビューションを実行しますアーカイブ内のモジュール。いくつかの問題があるため、実際に方法を変更することはできませんが、これまでのところ完璧に機能しています。

ジェンキンスを使用してMavenリポジトリにリリースしますが、テストモジュールや配布モジュールではなく、たとえばAPIといくつかのモジュールのみをリリースしたいです。それらをスキップする方法はありますか?本当に必要のないものをリリースしたくない:/

4

3 に答える 3

37

あなたを正しく理解するために、あなたはまだテストモジュールを実行したいが、それらをデプロイ/リリースしたくない。救助のための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

デフォルトの目標はとなのでdeploysiteすべて問題ないはずです。

scmルートpomにタグがあることを確認してください。

<scm>
    <connection>scm:svn|git:https://...</connection>
    <developerConnection>scm:svn|git:https://...</developerConnection>
</scm>

また、バージョン管理ツールのコマンド(git、svn、...)がPATHで利用可能であること。

于 2013-01-12T19:52:55.913 に答える
3

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.
于 2013-01-13T00:12:23.357 に答える
0

アグリゲーター プロジェクトの目的は、単純なプロジェクトの構築要件を結合することです。基本的なプロジェクトの構築要件が異なる場合は、新しいアグリゲーター プロジェクトを追加することを検討してください。

現在のアグリゲーター プロジェクトで Maven リポジトリへのデプロイを無効にし、デプロイするモジュールのみを含む新しいアグリゲーター プロジェクトを作成します。

この新しいプロジェクトを Jenkins に追加し、元のプロジェクトに依存させ、リポジトリにデプロイされるように構成します。

于 2013-01-14T13:06:03.237 に答える