首页 > 解决方案 > 无法使用 gradle 和 jdk 11 构建 jar

问题描述

当我尝试使用 gradle 和 jdk 11 创建 jar 构建时,总是会出现以下错误:

10:53:41: Executing task 'build'...

> Task :compileJava
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootJar UP-TO-DATE
> Task :jar SKIPPED
> Task :assemble UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test FAILED
> Task :jacocoTestReport UP-TO-DATE

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> failed to read class file /home/rodrigo/Projetos/Gaia/apipessoas/build/classes/java/test/com/rjdesenvolvimento/apipessoas/ApipessoasApplicationTests.class

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1m 9s
6 actionable tasks: 1 executed, 5 up-to-date
Unsupported class file major version 55
10:54:50: Task execution finished 'build'.

我迷路了,需要帮助。我试图将 mavencentral () 存储库更改为 jcenter,但没有成功。

当我使用 jdk 1.8 时不会发生错误,但是我需要 jdk 11,老板命令 = (

添加新信息**************************

13:29:00:执行任务'build'...

任务:compileJava UP-TO-DATE

任务:processResources UP-TO-DATE

任务:课程最新

任务:bootJar UP-TO-DATE

任务:罐子

任务:组装

任务:compileTestJava UP-TO-DATE

任务:processTestResources NO-SOURCE

任务:testClasses UP-TO-DATE

任务:测试

警告:发生了非法反射访问操作警告:org.springframework.cglib.core.ReflectUtils$1 非法反射访问(文件:/home/rodrigo/.gradle/caches/modules-2/files-2.1/org.springframework/ spring-core/5.0.9.RELEASE/9f9a828936d81afd49a603bda9cc1aed863a0d85/spring-core-5.0.9.RELEASE.jar) 到方法 java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java. security.ProtectionDomain) 警告:请考虑将此报告给 org.springframework.cglib.core.ReflectUtils$1 的维护者 警告:使用 --illegal-access=warn 启用对进一步非法反射访问操作的警告警告:所有非法访问操作将在未来的版本中被拒绝

com.rjdesenvolvimento.apipessoas.ApipessoasApplicationTests > contextLoads FAILED

java.lang.IllegalStateException

引起:org.springframework.beans.factory.UnsatisfiedDependencyException

引起:org.springframework.beans.factory.UnsatisfiedDependencyException

引起:org.springframework.beans.factory.BeanCreationException

引起:org.springframework.beans.factory.BeanCreationException

引起:org.springframework.beans.factory.BeanCreationException

引起:org.springframework.jdbc.datasource.init.ScriptStatementFailedException

引起:org.postgresql.util.PSQLException

1 次测试完成,1 次失败

任务:测试失败任务:jacocoTestReport

FAILURE:构建失败并出现异常。

出了什么问题:任务':test'执行失败。有失败的测试。参见报告:file:///home/rodrigo/Projetos/Gaia/apipessoas/build/reports/tests/test/index.html

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

在https://help.gradle.org获得更多帮助

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 5.0 不兼容。使用“--warning-mode all”显示各个弃用警告。见https://docs.gradle.org/4.10.2/userguide/command_line_interface.html#sec:command_line_warnings

在 10 秒内构建失败 7 个可操作的任务:3 个已执行,4 个是最新的 测试失败。请参阅报告:file:///home/rodrigo/Projetos/Gaia/apipessoas/build/reports/tests/test/index.html 13:29:11:任务执行完成“构建”。

标签: javatestinggradle

解决方案


您使用的是哪个版本的 Gradle?通过查看您的日志,我可以猜测它是4.8.1. 根据GitHub 上的问题,他们修复了 Gradle 以使其与 Java 114.10.2版本一起使用,所以您应该做的就是将 Gradle 升级到此版本或更高版本。如果您使用的是 Gradle 包装器,则只需编辑gradle/wrapper/gradle-wrapper.properties项目中的文件,然后更新distributionUrl为以下文件:

distributionUrl=https://services.gradle.org/distributions/gradle-4.10.2-all.zip

可能,您也可以在项目目录中通过以下方式执行此操作:

gradle wrapper --gradle-version 4.10.2

它应该更新或创建您的gradle-wrapper.properties文件。

完成后,您可以调用包装器:

./gradlew clean build

推荐阅读