2017-05-11 7 views
0

私はマルチモジュールのmavenプロジェクトを持っていて、各モジュールの内部にはいくつかのユニットテストがあります。Mavenの未変更のモジュールでユニットテストを避ける

1つのモジュールでソースコードを変更し、 "mvnパッケージ"を実行すると、他のモジュールのテストも実行されます。

私は、mvnの "パッケージ"ライフサイクルが "パッケージ"(コンパイル、テストなど)の前にすべてのライフサイクルを実行することを知っています。

しかし、これは避けることができるスマートな方法はありますか?

+0

おそらくhttp://stackoverflow.com/questions/42338827/skip-maven-build-for-unmodified-modules – Nemesis

+0

mavens '-pl:project1、:project2'パラメータを使用して、変更されたサブプロジェクトのみをビルドします。 –

+0

@TimothyTruckle私はジェンキンスの中でビルドをやっています。では、どのモジュールが変更されたのか、どのように知っていますか? – Yashu

答えて

0

ポイントが足りないためコメントできません。 @ timothy-truckleに加えて、 "-am"フラグを使用して、依存関係を再コンパイルしてテストすることができます。例えば:

mvn -pl moduleX -am package 

はmoduleXとモジュールmoduleXが

+0

こんにちは@ferrema、私はジェンキンスでこれをやっているので、どうやってモジュールが変わったのか分かりますか? – Yashu

+0

@Yashu、ジェンキンの問題があるようです:https://issues.jenkins-ci.org/browse/JENKINS-11964 – ferrema

0

使用Mavenのプロファイルに依存してコンパイルしてテストします。

  1. モジュールごとに個別のプロファイルを作成します。
  2. モジュールの成果物IDなどのプロファイルに簡単に識別できる名前を付けます。
  3. 各モジュールのプロファイルセクション内のmaven-surefire-pluginを設定して、そのモジュールのユニットテストをスキップします。今
  4. 、あなたはモジュールM1を構築し、モジュールは、&立方メートルをM2平方メートルでプロファイルをアクティブにユニットテストをスキップしたい場合、コマンドライン経由&立方メートル、

    MVNパッケージ-p M2、M3

関連する問題