我正在Windows Eclipse环境中构建项目,然后尝试在Unix环境中使用测试jar测试项目jar。当我跑步时,我得到如下所示。我正在将Maven与程序集插件一起使用,以将项目与Test Jar打包在一起,当我运行-tf命令时,可以看到Jar内缺少的类。
java -cp MyServerTest.jar:junit.jar junit.runner.JunitCore com.MyServer.services.ZoweAuthServiceTest
结果:
java.lang.NoClassDefFoundError:com.MyServer.services.ZoweAuthService 在com.MyServer.services.ZoweAuthServiceTest.testQueryToZowe(ZoweAuthServ iceTest.java:40) 引起原因:java.lang.ClassNotFoundException:com.MyServer.services.ZoweAuthService
答案 0 :(得分:0)
答案 1 :(得分:0)
我知道了。我想我应该提到我正在使用spring-boot。 Spring将我的项目的主类放在jar文件“ BOOT-INF”中的特殊前缀下,这可以防止测试类找到要测试的类。我将classifer exec添加到了pom中。这将创建两个单独的罐子。一种用于执行,另一种具有用于测试的常规类引用。
`<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>`