2010-11-22 14 views
3

私はMavenマルチモジュールプロジェクトに取り組んでいます。私は与えられたモジュールをビルドし、ユニットテストをスキップしてビルドプロセスを高速化したい。Mavenリアクタを使用するときにテストをスキップするにはどうすればよいですか?

私は次のことを試してみた:

mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests

mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True

しかし、これは全く影響はありません。すべての手がかりは?

答えて

6

最初の行は正しい考えのようですが、-Dgoals-Dmake.goalsを使用してください。 reactor plugin examples pageから

原子炉のプラグインは、その魔法を行うためのMavenの第二 のコピーを起動します。この Mavenのコピーには、必ず のフラグとオプションがあります。 は、--debugフラグ、システム のプロパティ、および-DskipTestsを含む の最初のコピーに渡されます。

あなたはこのような-Dmake.goalsと ゴール、として、それらを処理することによって生成されたMavenの に追加の引数を渡すことができます、「目標は」ちょうど 余分なコマンド - あるつまり

mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests 

生成されたMavenには が渡されました。彼らは は必ず "ゴール"でなければなりません。

あなたが本当に空想を取得したい場合は、あなた だけの予行演習に-Dmake.printOnlyモード、上記 で原子炉 プラグインを好むかもしれません。それは のプラグインには のビルドコマンドが表示されますが、その コマンドラインをあなたの心の中身に微調整することができます!

+1

それはそれを釘付け!それは、デジカメの欠けている「メイク」まですべてだった。ありがとう。 –

2

あなたが実行しているコマンドライン引数にオプション-Dmaven.test.skip=true(大文字小文字を区別)を含めてみましたか? Javaと同様、Mavenでは大文字と小文字が区別されます。しかし、一般的に、あなたは=真の部分を削除することができ、テストをスキップする必要があります。私は私のアプローチは、原子炉のプラグインがありませんまさになければわからないんだけど、私は次のようなアプローチがうまく働いたが、プロジェクト構造をあなたの

mvn reactor:make -Dmake.folders=C,D,E -Dgoals=package -Dmaven.test.skip=True 

と同様に

/ 
    A/pom.xml 
    B/pom.xml 
    C/pom.xml 
    D/pom.xml 
    E/pom.xml 
    pom.xml (parent pom file that includes A,B,C,D,E modules) 

を考えると

+0

これは私にとっては役に立ちません。ここに私が試した線があります:mvn reactor:make -Dmake.folders = search -Dgoals = package、-Dmaven.test.skip = true –

+3

-Dgoalsと-Dmaven.test.skipの間のカンマタイプミスです。その場合は、有効なpom.xmlファイルを生成しようとしましたか? pom.xmlファイルの何かがコマンドラインのテストスキップを無効にしている可能性があります。これは、コマンドラインがsettings.xmlとpom.xmlの中の何かを上書きする必要があるので変です。有効なpom.xmlを生成するには、以下を実行します。==> mvn help:effective-pom。確実なプラグインを探して、skipTestsが設定されているかどうかを確認します。 – jgifford25

3

私のために十分です

mvn -pl=C,D,E -DskipTests=true package 
+0

maven.test.skipまたはskipTestsを使用することができます.Surefireだけを使用している場合は、他のスイートと同じように動作する必要があります。 – nivekastoreth

+2

これらは同じように動作しません。 maven.test.skipはテストをビルドせず、skipTestsはテストを実行しません。別のモジュールがテストjar(依存するモジュール間の依存関係)に依存関係を定義している場合、モジュールはコンパイルされません。 – Christoph

関連する問題