我正在 Jenkins 盒子上运行使用 Maven 构建的 jUnit4 测试。我的目标是在执行测试之前恢复测试数据库。
看起来 exec-maven-plugin 是要走的路,但我无法让它运行。任何指针?尽管有很多示例,但 mojo 网站上的文档非常薄。
我需要运行的课程目前位于:
MyProject.src.test.java._tools.BuildTestEnvironment.java
我的 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>src.test.java._tools.BuildTestEnvironment</mainClass>
</configuration>
</plugin>
</plugins>
</pluginManagement>
在 Jenkins 中运行它,什么都没有发生。如果我在本地运行它,我会得到
我尝试过的事情,但没有成功:
在 Jenkins 中运行构建:什么都没有发生。该项目构建并开始运行测试,但我的课程没有运行。
在本地运行构建:与 Jenkins 中的结果相同。那里并不奇怪。
在本地运行 generate-test-resources:ClassNotFoundException。IE:
mvn exec:java generate-test-resources
java.lang.ClassNotFoundException: src.test.java._tools.BuildTestEnvironment将该类编译到一个 jar 中,并将其添加到我的 pom.xml 中。
更新:
在阅读了@ppuskar 的评论后,我尝试移动我的 buildxxx 类。将其移至 src.main.java._tools.BuildTestEnvironment 后,我仍然收到类似的消息。这是我的构建日志,以防万一:
[调试] 调用:test.java._tools.BuildTestEnvironment.main()
[调试] 插件依赖将被排除。
[DEBUG] 将包含项目依赖项。
[DEBUG] 收集的项目工件 [joda-time:joda-time:jar:2.3:compile, net.sf.jt400:jt400:jar:6.7:compile, junit:junit:jar:4.11:compile, org.hamcrest:hamcrest -core:jar:1.3:compile, com.fasterxml.jackson.core:jackson-core:jar:2.3.0:compile, com.fasterxml.jackson.core:jackson-databind:jar:2.3.0:compile, com .fasterxml.jackson.core:jackson-annotations:jar:2.3.0:compile, org.hamcrest:hamcrest-all:jar:1.3:compile, org.apache.logging.log4j:log4j-api:jar:2.0-rc1 :compile, org.apache.logging.log4j:log4j-core:jar:2.0-rc1:compile]
[DEBUG] 收集的项目类路径 [C:\workspace\VSP_UnitTest\target\classes]
[DEBUG] 添加到类路径:file:/C:/workspace/VSP_UnitTest/target/classes/
[DEBUG] 添加项目依赖工件:joda-time 到类路径
[DEBUG] 添加项目依赖工件:jt400 到类路径
[DEBUG] 添加项目依赖工件:junit 到类路径
[DEBUG] 添加项目依赖工件:hamcrest-core 到类路径
[DEBUG] 添加项目依赖工件:jackson-core 到类路径
[DEBUG] 添加项目依赖工件:jackson-databind 到类路径
[DEBUG] 添加项目依赖工件:jackson-annotations 到类路径
[DEBUG] 添加项目依赖工件:hamcrest-all 到类路径
[DEBUG] 添加项目依赖工件:log4j-api 到类路径
[DEBUG] 添加项目依赖工件:log4j-core 到类路径
[DEBUG] 加入线程 Thread[test.java._tools.BuildTestEnvironment.main(),5,test.java._tools.BuildTestEnvironment]
[WARNING] java.lang。 ClassNotFoundException: test.java._tools.BuildTestEnvironment
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged( Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org .codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
在 java.lang.Thread.run(Thread.java:724)
[INFO] -------------------------------- ----------------------------------------------------
[INFO] 构建失败
[INFO] -- -------------------------------------------------- --------------------
[INFO] 总时间:2.602 s
[INFO] 完成时间:2014-05-15T14:38:50-05:00
[INFO]最终内存:12M/152M
[INFO] ----------------------------------------- -------------------------------------------