From 882a9558ce066309a94d6b81cd0eecfcaee57bf3 Mon Sep 17 00:00:00 2001 From: Sergey Lapin Date: Fri, 13 May 2022 11:38:12 +0600 Subject: [PATCH] add support for running in newer java envs --- plugins/gradle/build.gradle | 2 +- .../java/com/slapin/napt/NaptGradlePlugin.kt | 20 +++++++++++++++++++ settings.gradle | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/plugins/gradle/build.gradle b/plugins/gradle/build.gradle index 808d9fc..601b295 100644 --- a/plugins/gradle/build.gradle +++ b/plugins/gradle/build.gradle @@ -12,7 +12,7 @@ repositories { } group = "com.sergei-lapin.napt" -version = "1.13" +version = "1.14" java { toolchain { diff --git a/plugins/gradle/src/main/java/com/slapin/napt/NaptGradlePlugin.kt b/plugins/gradle/src/main/java/com/slapin/napt/NaptGradlePlugin.kt index 365996d..0f13698 100644 --- a/plugins/gradle/src/main/java/com/slapin/napt/NaptGradlePlugin.kt +++ b/plugins/gradle/src/main/java/com/slapin/napt/NaptGradlePlugin.kt @@ -53,8 +53,28 @@ class NaptGradlePlugin : Plugin { private fun Project.notifyJavaCompilerAboutPlugin() { tasks.withType(JavaCompile::class.java).configureEach { javaCompile -> javaCompile.options.compilerArgs.add("-Xplugin:Napt") + javaCompile.options.fork( + mapOf( + "jvmArgs" to + getJdkModuleOpensList( + "jdk.compiler/com.sun.tools.javac.util", + "jdk.compiler/com.sun.tools.javac.api", + "jdk.compiler/com.sun.tools.javac.main", + ) + ) + ) } } + + private fun getJdkModuleOpensList(vararg modulePackage: String): List { + val result = mutableListOf() + modulePackage.forEach { pkg -> + result.add("--add-opens") + result.add("$pkg=ALL-UNNAMED") + } + return result + } + private fun Project.bindTriggerCleaning() { val cleanTrigger = tasks.register( diff --git a/settings.gradle b/settings.gradle index 97c9702..a4b077a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,7 +1,7 @@ pluginManagement { includeBuild("plugins") plugins { - id("com.sergei-lapin.napt") version "1.11" + id("com.sergei-lapin.napt") version "1.14" } } @@ -9,7 +9,7 @@ rootProject.name = "napt" includeBuild("plugins") { build -> build.dependencySubstitution { substitutions -> - substitutions.substitute(module("io.github.sergei-lapin.napt:javac:1.0-SNAPSHOT")).using(project(":javac")) + substitutions.substitute(module("io.github.sergei-lapin.napt:javac:1.0")).using(project(":javac")) } }