Компилирование после даже небольшого изменения кода регулярно занимает 5–8 минут < /strong>, что замедляет разработку. Функция IntelliJ Idea Hotswap обычно терпит неудачу. Мы хотели бы либо резко сократить время компиляции, либо надежно работать HOTSWAP. Но в идеале оба.
setup:
- Frameworks: Replay, JOOQ, летящий путь, OpenApi
- laptop: lenovo, 32 GB Ram с 32 GB Sw Sw Swp li> li> gb -swp java: corretto 21
- gradle: 8.5
- kotlin: 2.2.20-rc2
Код: Выделить всё
gradle.propertiesКод: Выделить всё
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-XX:+UseParallelGC -Xmx8g -Dkotlin.daemon.jvm.options=-Xmx6g \
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
kotlin.compiler.execution.strategy=in-process
< /code>
[b] kotlin Compiler Args (build.gradle.ktsКод: Выделить всё
-Xjsr305=strict
-Xbackend-threads=0
-Xenable-incremental-compilation
-Xlambdas=indy
Код: Выделить всё
-Dlog4j_rootLogger=INFO,Console
-XX:+ShowCodeDetailsInExceptionMessages
-Djdk.attach.allowAttachSelf=true
--add-exports=java.base/jdk.internal.access.foreign=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
compileKotlin - 3m 32.672s
npm:build - 2m 59.938s // Kotlinx-html to Webpack
detekt - 1m 14.514s
flywayMigrate - 41.606s
jooqCodegen - 35.940s
flywayLoadSchemaAndSeed - 22.542s
flywayClean - 12.956s
< /code>
Вопрос: < /strong>
Что мы можем сделать, чтобы: < /p>
Уменьшите время компиляции (например, пропуски задач, лучшее кэширование, параллелизация или изменения конфигурации). /> < /ol>
Любые проверенные советы для проектов с Kotlin + Gradle + Jooq + Flayway + OpenApi были бы очень оценены. < /p>
Подробнее здесь: https://stackoverflow.com/questions/797 ... pile-times
Мобильная версия