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 回答
3

使用选项-Dmaven.test.skip将跳过测试的编译和执行。( use-DskipTests只是跳过测试执行,测试仍然编译)

参考链接

mvn clean install -Dmaven.test.skip

于 2016-10-24T17:11:38.763 回答
1

在 Maven 中构建时,junit 的注释 @Ignore将忽略该类。

编辑:

您可以配置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 回答
1

将您的自定义测试文件放在src/localtest/java我认为的文件夹中,maven 不会知道它在那里。

于 2013-02-06T09:49:10.663 回答