假设我有一个函数说java编写的java文件。 拿这个是android studio的功能, 编译java文件 - >创建类文件 - >使用类文件构建apk。
现在我希望在创建类文件之后和类文件转换为apk之前立即调用该函数。
我在macOS终端上使用gradle,我也创建了build.gradle文件。
build.gradle文件位于
之下 apply plugin : "java"
apply plugin : "application"
mainClassName = "com.YYYY.XXXX.Main"
repositories{
mavenCentral()
}
dependencies{
compile "asm:asm:3.3.1"
compile "com.google.code.gson:gson:2.8.5"
compile "org.ow2.asm:asm-all:5.0.3"
compile "org.apache.commons:commons-lang3:3.7"
compile "com.googlecode.json-simple:json-simple:1.1.1"
compile fileTree(dir: 'libs', includes: ['*.jar'])
}
sourceSets{
main.java.srcDir "src/main"
}
jar{
from configurations.compile.collect {zipTree it}
manifest.attributes "Main-Class":"com.YYYY.XXXX.Main"
}
task run(type: Exec,dependsOn: jar,overwrite: true){
executable 'java'
args '-jar',"$jar.archivePath",'/Users/XXXX/Desktop/','/Users/XXXX/Downloads/cloud/'
doLast{
println "Successfully done the obfuscation"
}
}
这里使用Main类并使其运行。 我怎样才能实现上述目标?
答案 0 :(得分:0)
从Task:
查看finalizedBy()方法这应该做你需要的:
compileJava.finalizedBy "run"
顺便说一句,有一个更专业的JavaExec任务来执行java应用程序:
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html