我正在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.ZoweAuthServiceTest.testQueryToZowe(ZoweAuthServ iceTest.java:40)中的com.MyServer.services.ZoweAuthService引起:java.lang.ClassNotFoundException:com.MyServer.services.ZoweAuthService
我想到了。我想我应该提到我正在使用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>`