123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- 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 = "6"
- // 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 {
- id("com.github.johnrengelman.shadow") version "8.1.1"
- `java-library`
- `maven-publish`
- signing
- }
- 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 = uri("https://maven.pkg.github.com/revanced/Apktool")
- credentials {
- username = System.getenv("GITHUB_ACTOR") ?: project.findProperty("gpr.user").toString()
- password = System.getenv("GITHUB_TOKEN") ?: project.findProperty("gpr.key").toString()
- }
- }
- }
- publications {
- register("mavenJava", MavenPublication::class) {
- from(components["java"])
- groupId = "app.revanced"
- 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/revanced/Apktool.git"
- developerConnection = "scm:git:git@github.com:revanced/Apktool.git"
- url = "https://github.com/revanced/Apktool"
- }
- }
- }
- }
- }
- tasks.withType<Javadoc>() {
- (options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
- }
- signing {
- useGpgCmd()
- sign(publishing.publications["mavenJava"])
- }
- }
- }
- // Used for official releases.
- task("release") {
- dependsOn("build")
- finalizedBy("publish")
- }
|