在编译代码之前,我需要执行一个包含 main 方法的 java 类。到目前为止,这是我尝试过的:
task runSimple(type: JavaExec) {
main = 'jjrom.ObjectGen'
classpath = sourceSets.main.runtimeClasspath
File prop1 = file(propFilePath)
args '-sqlserver', '-force', prop1.path
println "I'm done executing."
}
compileJava {
dependsOn runSimple
}
当我使用命令“gradle compileJava”执行这个脚本时,我得到这个错误信息:
我执行完了。
失败:构建失败,出现异常。
出了什么问题:以下任务之间的循环依赖::classes --- :compileJava --- :runSimple --- :classes (*)
最佳答案
如果需要在编译代码之前执行这个类,不能给它classpath = sourceSets.main.runtimeClasspath
。后者包括编译后的代码,因此 Gradle 会自动推断 runSimple.dependsOn compileJava
,它与您的 compileJava.dependsOn runSimple
一起提供循环任务依赖性。 (准确地说,Gradle 推断出 runSimple.dependsOn classes
,而后者又依赖于 compileJava
。)
关于java - 如何在compileJava之前执行 'JavaExec'类型的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529817/