diff --git a/brut.apktool/apktool-cli/build.gradle.kts b/brut.apktool/apktool-cli/build.gradle.kts index 11d3052b84..bdeb705028 100644 --- a/brut.apktool/apktool-cli/build.gradle.kts +++ b/brut.apktool/apktool-cli/build.gradle.kts @@ -27,10 +27,9 @@ application { tasks.run.get().workingDir = file(System.getProperty("user.dir")) } -tasks.withType { - manifest { - attributes["Main-Class"] = "brut.apktool.Main" - } +tasks.withType().configureEach { + isPreserveFileTimestamps = false + isReproducibleFileOrder = true } tasks.register("cleanOutputDirectory") { @@ -39,8 +38,23 @@ tasks.register("cleanOutputDirectory") { }) } +tasks.create("shadowJar", Jar::class) { + dependsOn("build") + group = "build" + description = "Creates a single executable JAR with all dependencies" + manifest.attributes["Main-Class"] = "brut.apktool.Main" + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + + val dependencies = configurations + .runtimeClasspath + .get() + .map(::zipTree) + + from(dependencies) + with(tasks.jar.get()) +} + tasks.register("proguard") { - dependsOn("cleanOutputDirectory") dependsOn("shadowJar") injars(tasks.named("shadowJar").get().outputs.files) @@ -70,3 +84,5 @@ tasks.register("proguard") { val outPath = "build/libs/apktool-$apktoolVersion.jar" outjars(outPath) } + +tasks.getByPath(":release").dependsOn("proguard")