From 3fc91b013d722409d58a4e1c36af55707943f37b Mon Sep 17 00:00:00 2001 From: "Aleksei.Cherepanov" Date: Wed, 16 Nov 2022 20:02:57 +0000 Subject: [PATCH] Suppress warning for mvn+kapt+jdk9 Suppress the warning about lack of tools.jar, as this jar does not present in JDK9+ #KT-47110 Fixed Merge-request: KT-MR-7566 Merged-by: Aleksei Cherepanov --- .../maven/kapt/KaptJVMCompilerMojo.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java index d91df119d41..e18754ed295 100644 --- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java +++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java @@ -40,7 +40,9 @@ import java.util.stream.Collectors; import static org.jetbrains.kotlin.maven.Util.joinArrays; import static org.jetbrains.kotlin.maven.kapt.AnnotationProcessingManager.*; -/** @noinspection UnusedDeclaration */ +/** + * @noinspection UnusedDeclaration + */ @Mojo(name = "kapt", defaultPhase = LifecyclePhase.PROCESS_SOURCES, requiresDependencyResolution = ResolutionScope.COMPILE) public class KaptJVMCompilerMojo extends K2JVMCompileMojo { @Parameter @@ -72,7 +74,7 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { @Component private ArtifactHandlerManager artifactHandlerManager; - @Parameter( defaultValue = "${session}", readonly = true, required = true ) + @Parameter(defaultValue = "${session}", readonly = true, required = true) private MavenSession session; @Component @@ -165,7 +167,7 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { .filter(path -> { File pathFile = new File(path); return !pathFile.equals(generatedSourcesDirectory) - && !pathFile.equals(generatedKotlinSourcesDirectory); + && !pathFile.equals(generatedKotlinSourcesDirectory); }) .collect(Collectors.toList()); } @@ -187,7 +189,8 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { } @Override - protected void configureSpecificCompilerArguments(@NotNull K2JVMCompilerArguments arguments, @NotNull List sourceRoots) throws MojoExecutionException { + protected void configureSpecificCompilerArguments(@NotNull K2JVMCompilerArguments arguments, @NotNull List sourceRoots) + throws MojoExecutionException { super.configureSpecificCompilerArguments(arguments, sourceRoots); AnnotationProcessingManager.ResolvedArtifacts resolvedArtifacts; @@ -207,8 +210,8 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { joinArrays( arguments.getPluginClasspaths(), (jdkToolsJarPath == null) - ? new String[]{resolvedArtifacts.kaptCompilerPluginArtifact} - : new String[]{jdkToolsJarPath, resolvedArtifacts.kaptCompilerPluginArtifact} + ? new String[] {resolvedArtifacts.kaptCompilerPluginArtifact} + : new String[] {jdkToolsJarPath, resolvedArtifacts.kaptCompilerPluginArtifact} ) ); } @@ -220,6 +223,16 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { getLog().warn("Can't determine Java home, 'java.home' property does not exist"); return null; } + + val jdkVersion = try { + System.getProperty("java.specification.version") ?.toInt() + } + catch (e:NumberFormatException){ + // we got 1.8 or 1.6 + null + } ?:0 + if (jdkVersion >= 9) return null + File javaHome = new File(javaHomePath); File toolsJar = new File(javaHome, "lib/tools.jar"); if (toolsJar.exists()) { @@ -324,7 +337,8 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo { oos.flush(); return Base64.getEncoder().encodeToString(os.toByteArray()); - } catch (IOException e) { + } + catch (IOException e) { // Should not occur throw new RuntimeException(e); }