我有一个使用Eclipse RCP的应用程序。我有几个插件,每个插件都有一个pom.xml文件,所有的项目都有超级pom.xml
结构为:
plugin.a ( pom.xml inside )
plugin.b ( pom.xml inside )
plugin.c ( pom.xml inside )
plugin.test ( with a pom.xml too, contains all JUnit tests classes )
pom.xml
我的问题是,当我启动命令时:mvn integration-test
Maven试图执行所有的*Test.java,但如果没有发现它会崩溃(例如在插件a/b/c中)。
如何排除特定插件以避免此编译错误?
提前谢谢。
编辑:我找到了。在Each pom.xml中,如果我想避免非测试插件中的编译错误,我在<packaging>eclipse-test-plugin</packaging>
中,在<packaging>eclipse-plugin</packaging>
中没有。
但是谢谢你们的帮助<3
您可以使用surefire插件(单元测试)和故障保护插件(集成测试)来区分哪些测试在哪个阶段运行
例如:(在父pom.xml中)
在您的情况下,如果模块之间没有通用模式,我认为您需要在每个插件模块中进行类似的配置。因此,您可以禁用每个插件的执行。
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<forkMode>once</forkMode>
<includes>
<include>**/Test*.java</include>
</includes>
<excludes>
<exclude>**/*</exclude>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>failsafe-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</plugin>
如果有一个常见的模式,但你只想禁用执行,你可以向插件添加一个执行,给它一个id。如果子pom使用相同的id ,那么它可以重新配置该执行
<plugin>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<configuration>
</configuration>
<executions>
<execution>
<id>test-run-thing-id</id>
<phase>install</phase>
<goals>
<goal>plugin-goal</goal>
</goals>
</execution>
</executions>
</plugin>