我正在詹金斯盒子上运行用maven构建的jUnit4测试。在构建测试阶段之前,我需要运行特定的主方法Java程序。目的是在测试运行之前还原测试数据库。
如果我运行该exec分配的确切阶段,则我的类将按预期执行;但是当我运行整个构建时,我的类不会执行:
具体来说,它运行: mvn -X exec:java generate-test-resources
mvn -X exec:java generate-test-resources
但不能与以下内容一起运行: mvn -X -e install -或- mvn -X -e clean install
mvn -X -e install
mvn -X -e clean install
pom.xml: 我的pom.xml文件包括:
<pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.3</version> <executions> <execution> <id>build-test-environment</id> <phase>generate-test-resources</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>main.java._tools.BuildTestEnvironment</mainClass> </configuration> </plugin> </plugins> </pluginManagement>
生命周期默认值: 我还没有对maven的生命周期感到满意。日志报告为:
[DEBUG] Lifecycle default -> [ validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy ]
在定义了插件的情况下<pluginManagement>,您实际上是在告诉maven在调用插件时将在整个项目中使用哪个版本的插件。我通常希望<pluginManagement>标签出现在父pom中。
<pluginManagement>
要调用插件-只需放置<plugins/>元素。它可能会或可能不会从
<plugins/>
因此,要使用该插件,您只需通过输入以下内容来调用该插件
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.3</version> <executions> <execution> <id>build-test-environment</id> <phase>generate-test-resources</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>main.java._tools.BuildTestEnvironment</mainClass> </configuration> </plugin> ...AnyOtherPlugin <plugins>
没有任何<pluginManagement>标签