From 8096e2733e5ebb9e235b2afb5bfdf6bfc8f833ad Mon Sep 17 00:00:00 2001 From: Goooler Date: Thu, 8 Feb 2024 18:59:00 +0800 Subject: [PATCH 1/2] Generate Shadow Jar on Java 19 --- build.gradle.kts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c1abcf0..b78ff51 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,13 +2,14 @@ plugins { kotlin("jvm") version "1.9.22" id("com.diffplug.spotless") version "6.25.0" id("com.android.lint") version "8.2.2" + id("com.github.johnrengelman.shadow") version "8.1.1" } version = "0.2.0-SNAPSHOT" val baseName = "string-res-exporter" java { - toolchain.languageVersion = JavaLanguageVersion.of(8) + toolchain.languageVersion = JavaLanguageVersion.of(19) } tasks.withType().configureEach { @@ -21,15 +22,11 @@ tasks.withType().configureEach { } } -val fatJar by tasks.registering(Jar::class) { - dependsOn(configurations.runtimeClasspath) +tasks.shadowJar { + isEnableRelocation = true + relocationPrefix = "shadow" dependsOn(tasks.jar) - from(sourceSets.main.map { it.output.classesDirs }) - from(configurations.runtimeClasspath.map { it.asFileTree.files.map(::zipTree) }) - - archiveClassifier = "fat" - exclude( "**/*.kotlin_metadata", "**/*.kotlin_builtins", @@ -50,9 +47,9 @@ val fatJar by tasks.registering(Jar::class) { val r8File = layout.buildDirectory.file("libs/$baseName-$version-r8.jar").map { it.asFile } val rulesFile = project.file("src/main/rules.pro") val r8Jar by tasks.registering(JavaExec::class) { - dependsOn(fatJar) + dependsOn(tasks.shadowJar) - val fatJarFile = fatJar.get().archiveFile + val fatJarFile = tasks.shadowJar.get().outputs.files.singleFile inputs.file(fatJarFile) inputs.file(rulesFile) outputs.file(r8File) @@ -65,7 +62,7 @@ val r8Jar by tasks.registering(JavaExec::class) { "--output", r8File.get().path, "--pg-conf", rulesFile.path, "--lib", System.getProperty("java.home"), - fatJarFile.get().toString(), + fatJarFile.toString(), ) } From f2fec1c1a21fe97cc7864e38749087b0124ad5e6 Mon Sep 17 00:00:00 2001 From: Goooler Date: Thu, 8 Feb 2024 19:27:38 +0800 Subject: [PATCH 2/2] Add internal project for test --- build.gradle.kts | 1 + internal/build.gradle.kts | 7 +++++++ .../io/github/goooler/internal/InternalLogger.kt | 12 ++++++++++++ settings.gradle.kts | 2 ++ src/main/kotlin/io/github/goooler/exporter/Main.kt | 5 ++--- 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100755 internal/build.gradle.kts create mode 100644 internal/src/main/kotlin/io/github/goooler/internal/InternalLogger.kt diff --git a/build.gradle.kts b/build.gradle.kts index b78ff51..e65ab9d 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -108,6 +108,7 @@ spotless { val r8: Configuration by configurations.creating dependencies { + implementation(project(":internal")) implementation("org.apache.poi:poi:5.2.5") implementation("org.jdom:jdom2:2.0.6.1") diff --git a/internal/build.gradle.kts b/internal/build.gradle.kts new file mode 100755 index 0000000..b0d87a4 --- /dev/null +++ b/internal/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + kotlin("jvm") +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(19) +} diff --git a/internal/src/main/kotlin/io/github/goooler/internal/InternalLogger.kt b/internal/src/main/kotlin/io/github/goooler/internal/InternalLogger.kt new file mode 100644 index 0000000..9f621a0 --- /dev/null +++ b/internal/src/main/kotlin/io/github/goooler/internal/InternalLogger.kt @@ -0,0 +1,12 @@ +package io.github.goooler.internal + +import java.util.logging.LogManager +import java.util.logging.Logger + +object InternalLogger { + private val logger: Logger = LogManager.getLogManager().getLogger("internal") + + fun info(message: String) { + logger.info(message) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index bd65650..2a4f5ad 100755 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -29,3 +29,5 @@ dependencyResolutionManagement { } enableFeaturePreview("STABLE_CONFIGURATION_CACHE") + +include(":internal") diff --git a/src/main/kotlin/io/github/goooler/exporter/Main.kt b/src/main/kotlin/io/github/goooler/exporter/Main.kt index d58d56c..4c405bf 100644 --- a/src/main/kotlin/io/github/goooler/exporter/Main.kt +++ b/src/main/kotlin/io/github/goooler/exporter/Main.kt @@ -1,7 +1,6 @@ package io.github.goooler.exporter -import org.apache.logging.log4j.LogManager -import org.apache.logging.log4j.Logger +import io.github.goooler.internal.InternalLogger fun main(vararg args: String) { val (command, inputPath, outputPath) = args @@ -12,6 +11,6 @@ fun main(vararg args: String) { } } -val logger: Logger = LogManager.getLogger("Main") +val logger = InternalLogger const val SUCCESS_OUTPUT = "Convert finished, output path:"