1

別のモジュールのテストでテストを添付するプラグインを使用しています。

  <build>
    <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-jar-plugin</artifactId>
       <version>2.2</version>
       <executions>
         <execution>
           <goals>
             <goal>test-jar</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
    </plugins>
  </build>

そして、jarが必要なモジュールで:

   <dependency>
      <groupId>com.myco.app</groupId>
      <artifactId>foo</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
  </dependencies>

それは私にとって非常に役に立ちましたが、問題が見つかりました: "clean install -Dmaven.test.skip=true"を実行すると、依存関係の test-jar も必要になり、プロセスが失敗します

4

2 に答える 2

5

はい、-Dmaven.test.skip=truemaven junit プラグイン (surefire および failsafe) を実行しないようにするだけなので、テストを実行できなくなります。

Maven がテストスコープの依存関係をすべて「収集」しようとするのを防ぐことはできません。maven はまだそれらすべてを収集しています。

オプションの依存関係が必要な場合 (スコープに関係なく)、maven プロファイルについて読む必要があります。この依存関係が定義されるプロファイルを定義すると、(コマンド ラインから、例えば)

于 2013-07-03T17:28:50.477 に答える
2

-Dmaven.skip.testまたは-DskipTests、テストの実行をスキップするだけで、テストクラスをコンパイルするため、テストの依存関係が必要です

テスト クラスのコンパイルをスキップする場合は、Maven コンパイラ プラグインを構成してそのようにすることができます。別のビルド プロファイルを作成し、特別なビルド プロファイルを指定して、必要に応じてコンパイルをスキップすると便利です。

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <executions>
                <execution>
                    <id>default-testCompile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2013-07-03T17:28:52.133 に答える