我们的 POM 文件中有以下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>surefire-it</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
</configuration>
</execution>
</executions>
</plugin>
这确保测试不会在测试阶段执行。测试仅在 integration-test 阶段执行。
但是,当我们准备发布 (release:prepare) 时,maven 在 test 阶段执行测试。这导致我们的构建失败,因为我们的测试只能在集成测试阶段运行(我们使用 tomcat-maven 插件在测试可以执行之前部署打包的 war)。
我知道我们可以通过传递参数(-DskipTests 等)来跳过测试。我们不想跳过任何测试,我们只想发布:准备像任何其他 Maven 目标一样执行。
非常感谢任何建议/帮助。
最佳答案
尝试使用更通用的方法在 test
阶段完全禁用 maven-surefire-plugin
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<!-- Disable the default-test by putting it in phase none -->
<phase>none</phase>
</execution>
<execution>
<!-- Enable the test during integration-test phase -->
<id>surefire-it</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
编辑
这是我使用上面配置的 surefire 插件试运行 mvn release:prepare
的输出:
C:\Users\maba\Development\svn\local\stackoverflow\Q12840869>mvn release:prepare -DdryRun [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Q12840869-1.0-SNAPSHOT 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-release-plugin:2.0:prepare (default-cli) @ Q12840869 --- [INFO] Resuming release from phase 'scm-check-modifications' [INFO] Verifying that there are no local modifications... [INFO] Executing: cmd.exe /X /C "svn --non-interactive status" [INFO] Working directory: C:\Users\maba\Development\svn\local\stackoverflow\Q12840869 [INFO] Checking dependencies and plugins for snapshots ... What is the release version for "Q12840869-1.0-SNAPSHOT"? (com.stackoverflow:Q12840869) 1.0: : What is SCM release tag or label for "Q12840869-1.0-SNAPSHOT"? (com.stackoverflow:Q12840869) Q12840869-1.0: : What is the new development version for "Q12840869-1.0-SNAPSHOT"? (com.stackoverflow:Q12840869) 1.1-SNAPSHOT: : [INFO] Transforming 'Q12840869-1.0-SNAPSHOT'... [INFO] Not generating release POMs [INFO] Executing preparation goals - since this is simulation mode it is running against the original project, not the rewritten ones [INFO] Executing goals 'clean verify'... [WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance. [INFO] [INFO] Scanning for projects... [INFO] [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Building Q12840869-1.0-SNAPSHOT 1.0-SNAPSHOT [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ Q12840869 --- [INFO] [INFO] Deleting C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\target [INFO] [INFO] [INFO] [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q12840869 --- [INFO] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] [INFO] Copying 0 resource [INFO] [INFO] [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q12840869 --- [INFO] [INFO] Compiling 1 source file to C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\target\classes [INFO] [INFO] [INFO] [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ Q12840869 --- [INFO] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] [INFO] skip non existing resourceDirectory C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\src\test\resources [INFO] [INFO] [INFO] [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ Q12840869 --- [INFO] [INFO] Compiling 1 source file to C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\target\test-classes [INFO] [INFO] [INFO] [INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ Q12840869 --- [INFO] [INFO] Building jar: C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\target\Q12840869-1.0-SNAPSHOT.jar [INFO] [INFO] [INFO] [INFO] --- maven-surefire-plugin:2.7.2:test (surefire-it) @ Q12840869 --- [INFO] [INFO] Surefire report directory: C:\Users\maba\Development\svn\local\stackoverflow\Q12840869\target\surefire -reports [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.stackoverflow.MainTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.041 sec [INFO] [INFO] Results : [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] BUILD SUCCESS [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Total time: 5.102s [INFO] [INFO] Finished at: Thu Oct 11 17:10:29 CEST 2012 [INFO] [INFO] Final Memory: 13M/147M [INFO] [INFO] ------------------------------------------------------------------------
关于java - Maven 版本 :prepare goal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840869/