mirror of
https://github.com/revanced/Apktool.git
synced 2025-01-22 09:47:34 +01:00
342ff67a4c
* feat: initial migration to kotlin * feat: initial migration to kotlin * fix: wire up dependencies * fix: Deprecated tag for kotlin detection * refactor: put all modules into sub-projects * fix: include jar file (android framework) * fix: add version message/info * fix: wire up version/gitrev to properties * fix: wire up proguard on cli * fix: wire up proguard * fix: wire up output cleaning command * fix: drop license header on gradle files - fully rewritten from scratch by myself - no longer including license header on build files * fix: add compile utf8/flags for java8 * refactor: remove unneeded curly braces * feat: progress towards maven-publish * build: publish to maven * docs: update documentation * refactor: prevent implicit order by removal of afterEvaluate * build: remove unused license plugin
187 lines
5.4 KiB
Plaintext
187 lines
5.4 KiB
Plaintext
import java.io.ByteArrayOutputStream
|
|
|
|
val baksmaliVersion by extra("3.0.3")
|
|
val commonsCliVersion by extra("1.5.0")
|
|
val commonsIoVersion by extra("2.13.0")
|
|
val commonsLangVersion by extra("3.13.0")
|
|
val commonsTextVersion by extra("1.10.0")
|
|
val guavaVersion by extra("32.0.1-jre")
|
|
val junitVersion by extra("4.13.2")
|
|
val smaliVersion by extra("3.0.3")
|
|
val xmlpullVersion by extra("1.1.4c")
|
|
val xmlunitVersion by extra("2.9.1")
|
|
|
|
val version = "2.8.2"
|
|
val suffix = "SNAPSHOT"
|
|
|
|
// Strings embedded into the build.
|
|
var gitRevision by extra("")
|
|
var apktoolVersion by extra("")
|
|
|
|
defaultTasks("build", "shadowJar", "proguard")
|
|
|
|
// Functions
|
|
val gitDescribe: String? by lazy {
|
|
val stdout = ByteArrayOutputStream()
|
|
try {
|
|
rootProject.exec {
|
|
commandLine("git", "describe", "--tags")
|
|
standardOutput = stdout
|
|
}
|
|
stdout.toString().trim().replace("-g", "-")
|
|
} catch (e: Exception) {
|
|
null
|
|
}
|
|
}
|
|
|
|
val gitBranch: String? by lazy {
|
|
val stdout = ByteArrayOutputStream()
|
|
try {
|
|
rootProject.exec {
|
|
commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
|
|
standardOutput = stdout
|
|
}
|
|
stdout.toString().trim()
|
|
} catch (e: Exception) {
|
|
null
|
|
}
|
|
}
|
|
|
|
if ("release" !in gradle.startParameter.taskNames) {
|
|
val hash = this.gitDescribe
|
|
|
|
if (hash == null) {
|
|
gitRevision = "dirty"
|
|
apktoolVersion = "$version-dirty"
|
|
project.logger.lifecycle("Building SNAPSHOT (no .git folder found)")
|
|
} else {
|
|
gitRevision = hash
|
|
apktoolVersion = "$hash-SNAPSHOT"
|
|
project.logger.lifecycle("Building SNAPSHOT ($gitBranch): $gitRevision")
|
|
}
|
|
} else {
|
|
gitRevision = ""
|
|
apktoolVersion = if (suffix.isNotEmpty()) "$version-$suffix" else version;
|
|
project.logger.lifecycle("Building RELEASE ($gitBranch): $apktoolVersion")
|
|
}
|
|
|
|
plugins {
|
|
`java-library`
|
|
`maven-publish`
|
|
signing
|
|
}
|
|
|
|
buildscript {
|
|
repositories {
|
|
gradlePluginPortal()
|
|
google()
|
|
}
|
|
dependencies {
|
|
classpath("gradle.plugin.com.github.johnrengelman:shadow:8.0.0")
|
|
}
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
tasks.withType<JavaCompile> {
|
|
options.compilerArgs.add("-Xlint:-options")
|
|
options.compilerArgs.add("--release 8")
|
|
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
mavenCentral()
|
|
google()
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
apply(plugin = "java")
|
|
apply(plugin = "java-library")
|
|
|
|
val mavenProjects = arrayOf("apktool-lib", "apktool-cli", "brut.j.common", "brut.j.util", "brut.j.dir")
|
|
|
|
if (project.name in mavenProjects) {
|
|
apply(plugin = "maven-publish")
|
|
apply(plugin = "signing")
|
|
|
|
java {
|
|
withJavadocJar()
|
|
withSourcesJar()
|
|
}
|
|
|
|
publishing {
|
|
repositories {
|
|
maven {
|
|
url = if (suffix.contains("SNAPSHOT")) {
|
|
uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")
|
|
} else {
|
|
uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/")
|
|
}
|
|
credentials {
|
|
username = (project.properties["ossrhUsername"] ?: "").toString()
|
|
password = (project.properties["ossrhPassword"] ?: "").toString()
|
|
}
|
|
}
|
|
}
|
|
publications {
|
|
register("mavenJava", MavenPublication::class) {
|
|
from(components["java"])
|
|
groupId = "org.apktool"
|
|
artifactId = project.name
|
|
version = apktoolVersion
|
|
|
|
pom {
|
|
name = "Apktool"
|
|
description = "A tool for reverse engineering Android apk files."
|
|
url = "https://apktool.org"
|
|
|
|
licenses {
|
|
license {
|
|
name = "The Apache License 2.0"
|
|
url = "https://opensource.org/licenses/Apache-2.0"
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id = "iBotPeaches"
|
|
name = "Connor Tumbleson"
|
|
email = "connor.tumbleson@gmail.com"
|
|
}
|
|
developer {
|
|
id = "brutall"
|
|
name = "Ryszard Wiśniewski"
|
|
email = "brut.alll@gmail.com"
|
|
}
|
|
}
|
|
scm {
|
|
connection = "scm:git:git://github.com/iBotPeaches/Apktool.git"
|
|
developerConnection = "scm:git:git@github.com:iBotPeaches/Apktool.git"
|
|
url = "https://github.com/iBotPeaches/Apktool"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.withType<Javadoc>() {
|
|
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
|
|
}
|
|
|
|
signing {
|
|
sign(publishing.publications["mavenJava"])
|
|
}
|
|
}
|
|
}
|
|
|
|
// Used for official releases.
|
|
task("release") {
|
|
dependsOn("build")
|
|
finalizedBy("publish")
|
|
}
|