-
Notifications
You must be signed in to change notification settings - Fork 19
Debugging
Jason Penilla edited this page Dec 5, 2024
·
5 revisions
IntelliJ's Gradle integration allows running Gradle tasks with debugging out of the box, and it will automatically attach to the correct JVM.
Many JVMs implement basic hot-swap support out of the box. However, the JetBrains runtime includes enhanced redefinition features such as adding and removing methods. See below for instructions to use the JetBrains runtime.
If you are using Shadow to relocate dependencies, you may need to disable relocations or create a separate artifact without relocations for hot-swap to work properly.
settings.gradle.kts
plugins {
// add toolchain resolver
id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0"
}
build.gradle.kts
tasks.withType(xyz.jpenilla.runtask.task.AbstractRun::class) {
javaLauncher = javaToolchains.launcherFor {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(21)
}
jvmArgs("-XX:+AllowEnhancedClassRedefinition")
}