2023-04-13 07:10:18 +02:00

73 lines
1.6 KiB
Plaintext

buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath("com.guardsquare:proguard-gradle:7.3.0")
}
}
plugins {
java
application
}
repositories {
mavenCentral()
}
dependencies {
testImplementation("junit:junit:4.12")
}
application {
mainClassName = "gradlekotlindsl.App"
}
tasks.withType<Jar> {
manifest {
attributes["Main-Class"] = application.mainClassName
}
}
tasks.register<proguard.gradle.ProGuardTask>("proguard") {
verbose()
// Alternatively put your config in a separate file
// configuration("config.pro")
// Use the jar task output as a input jar. This will automatically add the necessary task dependency.
injars(tasks.named("jar"))
outjars("build/proguard-obfuscated.jar")
val javaHome = System.getProperty("java.home")
// Automatically handle the Java version of this build.
if (System.getProperty("java.version").startsWith("1.")) {
// Before Java 9, the runtime classes were packaged in a single jar file.
libraryjars("$javaHome/lib/rt.jar")
} else {
// As of Java 9, the runtime classes are packaged in modular jmod files.
libraryjars(
// filters must be specified first, as a map
mapOf("jarfilter" to "!**.jar",
"filter" to "!module-info.class"),
"$javaHome/jmods/java.base.jmod"
)
}
allowaccessmodification()
repackageclasses("")
printmapping("build/proguard-mapping.txt")
keep("""class gradlekotlindsl.App {
public static void main(java.lang.String[]);
}
""")
}