本文最后更新于24 天前,其中的信息可能已经过时,如有错误请发送邮件到1206083231@qq.com
以下为配置文件,可按需修改
import proguard.gradle.ProGuardTask
buildscript {
repositories { mavenCentral() }
dependencies {
classpath("com.guardsquare:proguard-gradle:7.6.1")
}
}
tasks.register('proguard', ProGuardTask) {
delete("${buildDir}/proguard")
mkdir "${buildDir}/proguard"
delete("$buildDir/classes-pro")
configuration file("proguard-rules.pro")
// 混淆时依赖的库
//libraryjars configurations.runtimeClasspath.collect()
//injars(tasks.named('jar').flatMap { it.archiveFile })
def javaHome = System.getProperty('java.home')
libraryjars "${javaHome}/jmods/java.base.jmod", jarfilter: '!**.jar', filter: '!module-info.class'
verbose()
//outjars layout.buildDirectory.file("libs/${project.name}.jar")
// 混淆输出
injars sourceSets.main.output
outjars "$buildDir/classes-pro"
dependsOn(bootJar)
}
task makeProJar(type: Jar) {
dependsOn proguard
// 指定生成的jar名
archiveBaseName = 'appshare'
// 从混淆后的目录打包class文件
from("$buildDir/classes-pro")
// 指定依赖包的路径
manifest {
attributes "Manifest-Version": 1.0,
'Main-Class': 'info.muge.appshare.AppshareApplicationKt',
'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ')
}
}