1. ホーム
  2. maven

[解決済み] Mavenビルド時のサブモジュールのスキップ

2022-04-15 11:12:01

質問

特定の環境下でサブモジュールをスキップできるようにする必要があります。

問題のモジュールは統合テストを含んでおり、実行に30分かかります。 そのため、CIサーバでビルドするときにはこのモジュールを含めたいのですが、開発者がローカルでビルドするときには(そしてテストが実行されるときには)、このモジュールをスキップしたいのです。

プロファイルの設定でこれを行う方法はあるのでしょうか? ググってみたり、ここの他の質問/回答を見てみましたが、良い解決策は見つかりませんでした。

一つの方法として、そのサブモジュールを親の pom.xml そして、CIサーバーにそのモジュールだけをビルドするための別のプロジェクトを追加します。

提案ですか?

解決方法は?

もちろん、これはプロファイルを使用して行うことができます。 親であるpom.xmlで以下のようなことをすればいいのです。

  ...
   <modules>
      <module>module1</module>
      <module>module2</module>  
      ...
  </modules>
  ...
  <profiles>
     <profile>
       <id>ci</id>
          <modules>
            <module>module1</module>
            <module>module2</module>
            ...
            <module>module-integration-test</module>
          </modules> 
      </profile>
  </profiles>
 ...

CIでは、mavenを実行する際に ci プロファイル、すなわち mvn -P ci clean install