7

プロジェクトの src/test/java フォルダーにテストとして使用しているクラスがいくつかあります。標準のmavenコンパイルプラグインを使用してmavenを実行すると。これらの項目は .class ファイルにコンパイルされ、コンパイルされたコードがパッケージ化される jar に含まれます。

Mavenを実行してリリースをビルドする前に、Eclipse内で実行するためにこれらのテストを作成しました。これらは単なるサニティ テストであり、ビルドに含めるべきではありません。私にとって、それらはここで理にかなっているからです。そのディレクトリ内のファイルをコンパイル/インクルードしたくないことをmavenに伝えるにはどうすればよいですか?

Mavenコンパイラプラグインが次のようにjarを生成していると思います:

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
 <configuration>
  <source>1.6</source>
  <target>1.6</target>
 </configuration>
</plugin>
4

4 に答える 4

7

この回答に対するあなたのコメントから、「テスト」は単体テストではなく、最終的なアーティファクトから除外したい通常のクラスであることがわかりますか? そのため、次のようにmaven-jar-plugin<exclude>でタグを使用することをお勧めします。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <excludes>
            <exclude>**/yoursortoftestpackage/YourSortOfTestClass*</exclude>
        </excludes>
    </configuration>
</plugin>

それが役立つことを願っています!

乾杯、

于 2013-02-05T22:46:17.557 に答える
1

カスタム テスト ファイルをフォルダーに配置するsrc/localtest/javaと、maven はそこにあることを認識しません。

于 2013-02-06T09:49:10.663 に答える
1

junit の注釈は @Ignore、maven でのビルド中にクラスを無視します。

編集:

maven-surefire-pluginを構成できます。

<project>
<build>
<project>
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4.2</version>
    <configuration>
      <excludes>
        <exclude>**/TestCircle.java</exclude>
        <exclude>**/TestSquare.java</exclude>
      </excludes>
    </configuration>
  </plugin>
</plugins>
于 2013-02-05T22:32:43.477 に答える