优化:`build.gradle`脚本,编译前后自动清理

pull/436/head
pppscn 2 months ago
parent a1f1456dfc
commit 5125ea2eda

@ -1,4 +1,3 @@
//file:noinspection GrDeprecatedAPIUsage
//file:noinspection DependencyNotationArgument
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
@ -24,7 +23,6 @@ if (isNeedPackage.toBoolean() && isUseBooster.toBoolean()) {
}
android {
//noinspection GradleDependency
buildToolsVersion build_versions.build_tools
compileSdkVersion build_versions.target_sdk
@ -88,8 +86,6 @@ android {
//
debuggable false
jniDebuggable false
//
zipAlignEnabled true
//
shrinkResources true
//
@ -119,8 +115,6 @@ android {
//
debuggable true
jniDebuggable true
//
zipAlignEnabled true
//
shrinkResources true
//
@ -174,21 +168,24 @@ android {
}
android.applicationVariants.configureEach { variant ->
// Assigns a different version code for each output APK.
variant.outputs.each { output ->
//noinspection GrDeprecatedAPIUsage
def abiName = output.getFilter(com.android.build.OutputFile.ABI)
if (abiName == null) abiName = "universal"
output.versionCodeOverride = abiCodes.get(abiName, 0) * 100000 + variant.versionCode
output.outputFileName = "SmsF_${versionName}_${output.versionCode}_${abiName}_${variant.name}.apk"
// output-metadata.json Git Commit ID
variant.assemble.doLast {
def metadataFile = file("${variant.outputs[0].outputFile.parent}/output-metadata.json")
def metadata = new JsonSlurper().parseText(metadataFile.text)
metadata.buildDate = buildDate
metadata.buildTime = buildTime
metadata.gitCommitId = gitCommitId
metadataFile.text = new JsonBuilder(metadata).toPrettyString()
def assembleTaskName = "assemble${variant.name.capitalize()}"
tasks.named(assembleTaskName) {
doLast {
def metadataFile = file("${output.outputFile.parent}/output-metadata.json")
def metadata = new JsonSlurper().parseText(metadataFile.text)
metadata.buildDate = buildDate
metadata.buildTime = buildTime
metadata.gitCommitId = gitCommitId
metadataFile.text = new JsonBuilder(metadata).toPrettyString()
}
}
}
}
@ -209,6 +206,23 @@ android {
}
namespace 'com.idormy.sms.forwarder'
//
preBuild.dependsOn clean
//
gradle.buildFinished { buildResult ->
if (buildResult.failure == null) {
println "Build succeeded, cleaning text files..."
//delete rootProject.buildDir
FileTree rootTree = fileTree(dir: rootDir)
rootTree.each { File file ->
if ((file.toString().contains("ajcore") || file.toString().contains("mapping") || file.toString().contains("seeds") || file.toString().contains("unused")) && file.toString().endsWith(".txt")) {
delete file
}
}
} else {
println "Build failed, cleanTxt not executed."
}
}
}
dependencies {
@ -216,10 +230,8 @@ dependencies {
//frpc
implementation files('libs/frpclib.aar')
//kmnktKotlin MultiplatformsocketUDP/TCP/MQTT
//https://github.com/xuankaicat/kmnkt
//MQTT
implementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5")
//implementation files('libs/socket-2.0.0-alpha06-2.aar')
testImplementation deps.junit
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
@ -248,7 +260,7 @@ dependencies {
implementation 'com.github.xuexiangjys.AgentWeb:agentweb-download:1.0.0'//
//AutoSizehttps://github.com/JessYanCoding/AndroidAutoSize
implementation 'me.jessyan:autosize:1.2.1'
//umeng
//
implementation 'com.umeng.umsdk:common:9.6.7'
implementation 'com.umeng.umsdk:asms:1.8.2'

@ -1,4 +1,3 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
//file:noinspection DependencyNotationArgument
buildscript {
@ -22,10 +21,6 @@ buildscript {
}
}
//allprojects {
// addRepos(repositories)
//}
allprojects {
repositories {
google()
@ -38,31 +33,10 @@ allprojects {
maven { url "https://jitpack.io" }
}
//
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
//
tasks.withType(Javadoc).configureEach {
options {
encoding 'UTF-8'
charSet 'UTF-8'
links 'http://docs.oracle.com/javase/7/docs/api'
}
}
// build
setBuildDir(new File(rootDir, "build/${path.replaceAll(':', '/')}"))
}
tasks.register('clean', Delete) {
delete rootProject.buildDir
FileTree rootTree = fileTree(dir: rootDir)
rootTree.each { File file ->
if ((file.toString().contains("ajcore") || file.toString().contains("mapping") || file.toString().contains("seeds") || file.toString().contains("unused")) && file.toString().endsWith(".txt")) {
delete file
}
}
}
}
Loading…
Cancel
Save