首页 > 解决方案 > 未能使用 maven-surfire-plugin 和测试执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test

问题描述

我正在制作一个 Maven Spring Boot Web 应用程序,但遇到了我的团队成员没有的错误。我能够通过添加javax.xml.bind依赖项来解决错误,但是我的团队成员能够在没有此依赖项的情况下运行应用程序,所以我想使用与他们相同的版本。我发布了完整的 maven-install 堆栈跟踪和(默认)测试。

@RunWith(SpringRunner.class)
@SpringBootTest
public class HolidayApplicationTests {

    @Test
    public void contextLoads() {
    }

}

错误日志:

org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]中定义名称为“entityManagerFactory”的bean创建错误:调用init方法失败;嵌套异常是 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1699) ~[spring-beans-5.0.8.RELEASE.jar :5.0.8.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573) ~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE] 在 org .springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。0] 在 org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) [surefire-booter-2.21.0.jar:2.21.0] 在 org.apache.maven.surefire.booter.ForkedBooter .execute(ForkedBooter.java:125) [surefire-booter-2.21.0.jar:2.21.0] 在 org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) [surefire-booter- 2.21.0.jar:2.21.0] 原因:org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration 中定义的名称为“entityManagerFactory”的 bean 创建错误.class]: init 方法调用失败;嵌套异常是 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。loadClass(ClassLoaders.java:190) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na] ...省略了 53 个常见帧 [错误] 测试运行:1,失败:0,错误:1,跳过:0,经过的时间:4.915 秒 <<< 失败!- 在 com.enjoying.holidayApplication.HolidayApplication.HolidayApplicationTests [ERROR] contextLoads(com.enjoying.holidayApplication.HolidayApplication.HolidayApplicationTests) 已用时间:0.006 秒 <<< 错误!java.lang.IllegalStateException:无法加载 ApplicationContext 原因:org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名称为“entityManagerFactory”的bean时出错[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration 。班级]:调用 init 方法失败;嵌套异常是 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 引起:java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 引起:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

[INFO]
[INFO] 结果:
[INFO]
[ERROR] 错误:
[ERROR] HolidayApplicationTests.contextLoads » IllegalState 无法加载应用程序...
[INFO]
[ERROR] 测试运行:1,失败:0,错误:1,跳过:0
[INFO]
[INFO] ----------------------------------------- -------------------------------
[INFO] 构建失败
[INFO] ----------- -------------------------------------------------- ------------
[INFO] 总时间:8.069 s
[INFO] 完成时间:2018-08-16T10:33:12+02:00
[INFO] --------- -------------------------------------------------- -------------
[错误] 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test
项目 HolidayApplication 上的(默认测试):存在测试失败。[错误]
[错误] 个别测试结果请参考 C:\git-project\evidencija-godisnjih-odmora\HolidayApplication\target\surefire-reports

[错误] 请参考转储文件(如果有)[日期]-jvmRun[N].dump、[日期].dumpstream 和
[日期]-jvmRun[N].dumpstream。
[ERROR] -> [Help 1]
[ERROR]
[ERROR] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。
[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。
[ERROR]
[ERROR] 有关错误和可能解决方案的更多信息,请阅读以下文章:
[错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

标签: javamaven

解决方案


我通过从 java 10 切换到 java 8 解决了这个问题。


推荐阅读