KaptGenerateStubsKotlin в Котлине выходит из строя через деньJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 KaptGenerateStubsKotlin в Котлине выходит из строя через день

Сообщение Anonymous »

Я рвал на себе волосы, поддерживая проект, который написал на Kotlin.
По сути, он использует EBean, который сам использует Kapt для генерации некоторого кода.
Проблема в том, что буквально каждая вторая сборка ломается. Я собираю свой проект раз в несколько дней, запуская его через gradle ./gradlew run ....
Когда он ломается, я немного возюсь с версиями и кажется, оно само исправляется. А именно — это была версия Kotlin, с которой я постоянно сталкивался, и, похоже, она время от времени решала проблему.
Я делал это как минимум 10 раз в в прошлом году, и это сводит меня с ума.
Вот ошибка:

Код: Выделить всё

>  Task :kaptGenerateStubsKotlin FAILED
e: java.lang.IllegalAccessError: superclass access check failed:  class org.jetbrains.kotlin.kapt3.base.javac.KaptJavaCompiler (in unnamed module @0x65012184) cannot access class com.sun.tools.javac.main.JavaCompiler (in module jdk.compiler)  b e c a u s e   m o d u l e   j d k . c o m p i l e r   d o e s   n o t   e x p o r t   c o m . s u n . t o o l s . j a v a c . m a i n   t o   u n n a m e d   m o d u l e   @ 0 x 6 5 0 1 2 1 8 4 < b r   / >                 a t   j a v a . b a s e / j a v a . l a n g . C l a s s L o a d e r . d e f i n e C l a s s 1 ( N a t i v e   M e t h o d ) < b r   / >                 a t   j a v a . b a s e / j a v a . l a n g . C l a s s L o a d e r . d e f i n e C l a s s ( C l a s s L o a d e r . j a v a : 1 0 1 8 ) < b r   / >                 a t   j a v a . b a s e / j a v a . s e c u r i t y . S e c u r e C l a s s L o a d e r . d e f i n e C l a s s ( S e c u r e C l a s s L o a d e r . j a v a : 1 5 0 ) < b r   / >                 a t   j a v a . b a s e / j a v a . n e t . U R L C l a s s L o a d e r . d e f i n e C l a s s ( U R L C l a s s L o a d e r . j a v a : 5 2 4 ) < b r   / >                 a t   j a v a . b a s e / j a v a . n e t . U R L C l a s s L o a d e r $ 1 . r u n ( U R L C l a s s L o a d e r . j a v a : 4 2 7 ) < b r   / >                 a t   j a v a . b a s e / j a v a . n e t . U R L C l a s s L o a d e r $ 1 . r u n ( U R L C l a s s L o a d e r . j a v a : 4 2 1 ) < b r   / >                 a t   j a v a . b a s e / j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( A c c e s s C o n t r o l l e r . j a v a : 7 1 4 ) < b r   / >                 a t   j a v a . b a s e / j a v a . n e t . U R L C l a s s L o a d e r . f i n d C l a s s ( U R L C lassLoader.java:420)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at org.jetbrains.kotlin.kapt3.base.KaptContext.(KaptContext.kt:55)
at org.jetbrains.kotlin.kapt3.KaptContextForStubGeneration.(KaptContextForStubGeneration.kt:38)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.contextForStubGeneration(Kapt3Extension.kt:278)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:157)
at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:87)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$invokeExtensionsOnAnalysisComplete(TopDownAnalyzerFacadeForJVM.kt:104)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:114)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:463)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:62)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:477)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:400)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:281)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:125)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:657)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:105)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1624)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)

FAILURE:  Build failed with an exception.

* What went wrong:
Execution failed for task ':kaptGenerateStubsKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
> Internal compiler error. See log for more details

* 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 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1s
А вот мои текущие параметры:

Код: Выделить всё

java -version

java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)

Код: Выделить всё

./gradlew -version                                                           ✔  base  

------------------------------------------------------------
Gradle 7.5
------------------------------------------------------------

Build time:   2022-07-14 12:48:15 UTC
Revision:     c7db7b958189ad2b0c1472b6fe663e6d654a5103

Kotlin:       1.6.21
Groovy:       3.0.10
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17.0.10 (Oracle Corporation 17.0.10+11-LTS-240)
OS:           Mac OS X 13.2.1 aarch64
Некоторые из моих build.gradle:

Код: Выделить всё

dependencies {

// query bean generation
kapt 'io.ebean:kotlin-querybean-generator:13.11.0'
implementation 'io.ebean:ebean:13.11.0'
implementation 'io.ebean:ebean-migration:13.6.0'
implementation 'io.ebean:ebean-querybean:13.11.0'
testImplementation 'io.ebean:ebean-test:13.11.0'
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "17"
}
}

Код: Выделить всё

plugins {

id 'org.jetbrains.kotlin.jvm' version '1.9.20'
id "org.jetbrains.kotlin.kapt" version "1.9.20"

id 'com.github.ben-manes.versions' version '0.28.0'
id 'io.gitlab.arturbosch.detekt' version '1.22.0'
id('io.ebean') version '13.11.0'
id "com.google.protobuf" version "0.9.1"
}

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'jacoco'
Одного я не понимаю: почему это не создается последовательно? Почему процесс сборки кажется таким недетерминированным? Одни и те же закрепленные версии должны приводить к тому, что программное обеспечение все время будет работать - я не понимаю, что меняется, чтобы это изменилось. Я никогда явно ничего не обновляю на своей машине между этими запусками.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -other-day
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»