Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate Shadow Jar on Java 19 #29

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Jar>().configureEach {
Expand All @@ -21,15 +22,11 @@ tasks.withType<Jar>().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",
Expand All @@ -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)
Expand All @@ -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(),
)
}

Expand Down Expand Up @@ -111,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")

Expand Down
7 changes: 7 additions & 0 deletions internal/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
plugins {
kotlin("jvm")
}

java {
toolchain.languageVersion = JavaLanguageVersion.of(19)
}
Original file line number Diff line number Diff line change
@@ -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)
}
}
2 changes: 2 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ dependencyResolutionManagement {
}

enableFeaturePreview("STABLE_CONFIGURATION_CACHE")

include(":internal")
5 changes: 2 additions & 3 deletions src/main/kotlin/io/github/goooler/exporter/Main.kt
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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:"
Loading