28

我有一个项目,我设置为test-jar使用此设置使用普通 jar 构建:

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

这样做的问题是,每当我在 pom 中升级项目版本时,我都需要使用测试进行构建,否则 maven 将无法在该test-compile短语中找到具有正确版本的 test-jar。很多时候我只想跳过测试,但由于缺少测试罐,这test-compile句话会失败。

我尝试使用-Dmaven.test.skip=true,但这似乎并没有跳过这个test-compile阶段。有没有办法跳过这个?

4

5 回答 5

60
$ mvn clean install -Dmaven.test.skip=true \
      -Dmaven.site.skip=true -Dmaven.javadoc.skip=true
于 2014-11-11T16:40:02.107 回答
44

如果你想跳过测试源的编译,你可以尝试适当配置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>
于 2011-04-26T04:29:06.920 回答
3

只需添加 -Dmaven.test.skip 。它甚至不会编译测试

于 2019-04-01T07:18:38.010 回答
0

这是我来自https://maven.apache.org/plugins-archives/maven-surefire-plugin-2.12.4/examples/skipping-test.html的工作命令

您可以使用以下命令跳过正在运行的测试

mvn clean install -DskipTests

如果你绝对必须,你也可以使用maven.test.skip属性来跳过编译测试。maven.test.skip受到 Surefire、Failsafe 和 Compiler Plugin 的认可。

mvn clean install -Dmaven.test.skip=true -DskipTests

于 2019-06-16T05:42:17.033 回答
0

有点晚了,但总结一下,准确地说——

除了@Sridhar@FWDekker所说的,

mvn clean install -DskipTests=true将跳过测试执行

mvn clean install -Dmaven.test.skip将跳过测试的编译和执行。

于 2022-01-27T07:48:57.033 回答