Java 将JDK更改为11后更新构建诱惑报告的依赖项
我有一个使用Maven+TestNG+Allure的测试项目,它是在使用OracleJDK时创建的:Java 将JDK更改为11后更新构建诱惑报告的依赖项,java,maven,testng,allure,Java,Maven,Testng,Allure,我有一个使用Maven+TestNG+Allure的测试项目,它是在使用OracleJDK时创建的:1.8(java版本“1.8.0_201”)在那里运行测试和生成报告都很好。过了一段时间,我尝试在使用较新OpenJDK:11.0.4(java版本“11.0.4”)的其他PC上设置此项目 我通过添加JAXB依赖项修复了正在运行的测试: <dependency> <groupId>javax.xml.bind</groupId>
1.8(java版本“1.8.0_201”)
在那里运行测试和生成报告都很好。过了一段时间,我尝试在使用较新OpenJDK:11.0.4(java版本“11.0.4”)
的其他PC上设置此项目
我通过添加JAXB依赖项修复了正在运行的测试:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
javax.xml.bind
jaxb api
2.3.1
org.glassfish.jaxb
jaxb运行时
2.3.1
但在试运行后尝试生成诱惑报告时仍然遇到问题
我发现了一个错误:
Generating report to temp directory...
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement
at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:139)
at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:126)
at io.qameta.allure.context.JacksonContext.<init>(JacksonContext.java:24)
at io.qameta.allure.ConfigurationBuilder.useDefault(ConfigurationBuilder.java:50)
at io.qameta.allure.Commands.createReportConfiguration(Commands.java:158)
at io.qameta.allure.Commands.generate(Commands.java:63)
at io.qameta.allure.Commands.serve(Commands.java:88)
at io.qameta.allure.CommandLine.run(CommandLine.java:136)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at io.qameta.allure.CommandLine.main(CommandLine.java:72)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlElement
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 10 more
[ERROR] Can't generate allure report data
正在生成到临时目录的报告。。。
线程“main”java.lang.NoClassDefFoundError中出现异常:javax/xml/bind/annotation/XmlElement
位于com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector(JaxbAnnotationIntrospector.java:139)
位于com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector(JaxbAnnotationIntrospector.java:126)
位于io.qameta.allure.context.JacksonContext.(JacksonContext.java:24)
在io.qameta.allure.ConfigurationBuilder.useDefault(ConfigurationBuilder.java:50)中
位于io.qameta.allure.Commands.createReportConfiguration(Commands.java:158)
位于io.qameta.allure.Commands.generate(Commands.java:63)
at io.qameta.allure.Commands.service(Commands.java:88)
运行(CommandLine.java:136)
位于java.base/java.util.Optional.orElseGet(Optional.java:369)
位于io.qameta.allure.CommandLine.main(CommandLine.java:72)
原因:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlElement
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 10多
[错误]无法生成诱惑报告数据
对它的搜索表明,JAXB中的问题看起来仍然像是在Java11中被弃用的,有什么信息可以准确地为allure report修复这个问题吗?我相信在我的pom.xml文件中有这样的问题:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.edx.tests</groupId>
<artifactId>FinalProject</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<browser>chrome</browser>
<browser>firefox</browser>
<aspectj.version>1.9.4</aspectj.version>
<allure.version>2.9.0</allure.version>
<allure.maven.plugin>2.9</allure.maven.plugin>
</properties>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>${allure.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<browser>${browser}</browser>
<allure.results.directory>target/allure-results</allure.results.directory>
<allure.link.issue.pattern>https://example.org/issue/{}</allure.link.issue.pattern>
<allure.link.tms.pattern>https://example.org/tms/{}</allure.link.tms.pattern>
</systemPropertyVariables>
<argLine>
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
</argLine>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>${allure.maven.plugin}</version>
</plugin>
</plugins>
</build>
<reporting>
<!--<excludeDefaults>true</excludeDefaults>-->
<plugins>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>${allure.maven.plugin}</version>
<configuration>
<reportVersion>2.4.1</reportVersion>
</configuration>
</plugin>
</plugins>
</reporting>
</project>
4.0.0
com.edx.tests
最终项目
1.0-快照
铬
火狐
1.9.4
2.9.0
2.9
org.seleniumhq.selenium
硒爪哇
3.141.59
io.github.bonigarcia
webdrivermanager
3.6.0
org.testng
testng
6.14.3
org.aspectj
aspectjweaver
${aspectj.version}
io.qameta.allure
诱惑测试
${allure.version}
javax.xml.bind
jaxb api
2.3.1
org.glassfish.jaxb
jaxb运行时
2.3.1
org.apache.maven.plugins
maven surefire插件
2.22.2
src/main/resources/testng.xml
${browser}
目标/诱惑结果
https://example.org/issue/{}
https://example.org/tms/{}
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
真的
org.apache.maven.plugins
maven编译器插件
8.
8.
io.qameta.allure
诱惑马文
${allure.maven.plugin}
io.qameta.allure
诱惑马文
${allure.maven.plugin}
2.4.1
这里还应该更新哪些内容来修复该错误