首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle Ktlint插件在Java 16上失败

Gradle Ktlint插件在Java 16上失败
EN

Stack Overflow用户
提问于 2021-03-25 19:16:31
回答 2查看 1.6K关注 0票数 3

升级到Java 16之后,我无法使ktlint插件工作。它在扔

代码语言:javascript
复制
Execution failed for task ':runKtlintCheckOverMainSourceSet'.
A failure occurred while executing org.jlleitschuh.gradle.ktlint.worker.KtLintWorkAction
   java.lang.ExceptionInInitializerError (no error message)

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task     ':runKtlintCheckOverMainSourceSet'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$3(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:268)

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.jlleitschuh.gradle.ktlint.worker.KtLintWorkAction
    at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:336)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:94)
    ...
Caused by: java.lang.ExceptionInInitializerError
        at org.jetbrains.kotlin.com.intellij.pom.java.LanguageLevel.<clinit>(LanguageLevel.java:25)
        at org.jetbrains.kotlin.com.intellij.core.CoreLanguageLevelProjectExtension.<init>(CoreLanguageLevelProjectExtension.java:26)
        at org.jetbrains.kotlin.com.intellij.core.JavaCoreProjectEnvironment.<init>(JavaCoreProjectEnvironment.java:42)
        ...
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.util.ResourceBundle.setParent(java.util.ResourceBundle) accessible: module java.base does not "opens java.util" to unnamed module @58f87189
        at org.jetbrains.kotlin.com.intellij.util.ReflectionUtil.makeAccessible(ReflectionUtil.java:252)
        at org.jetbrains.kotlin.com.intellij.util.ReflectionUtil.getDeclaredMethod(ReflectionUtil.java:269)
        at org.jetbrains.kotlin.com.intellij.DynamicBundle.<clinit>(DynamicBundle.java:22)
        ... 32 more

我知道这是由更严格的模块检查(JEP 396)造成的,但我无法为插件设置JVM args。我试过:

  • 设置env变量JAVA_OPTS=--illegal-access=warn
  • org.gradle.jvmargs=--illegal-access=warn -Dkotlin.daemon.jvm.options=--illegal-access=warn中设置gradle.properties

但这两次尝试都没有帮助,我没有任何想法。

EN

回答 2

Stack Overflow用户

发布于 2021-04-07 18:14:54

Java 16似乎不受第6.x级的支持,而且将被第7级所支持。

票数 0
EN

Stack Overflow用户

发布于 2021-04-11 20:55:46

您可以根据迁移指南更新Gradle插件以获得最新版本

代码语言:javascript
复制
gradle wrapper --gradle-version 7.0

应该修复此错误消息。否则,还可以更改文件gradle/wrapper/gradle-wrapper.properties中的版本。

代码语言:javascript
复制
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip

我还更新了像kotlin("jvm")这样的kotlin插件,使其成为最新版本的1.4.32

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66806195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档