我是转换为Gradle的gmake用户。我有一个多项目结构,其中一个子项目是Java项目,另一个是自制语言。自制语言不使用任何Gradle插件。现在我想添加一个运行Java程序的任务,以便在修改任何自制的源文件时生成XML。在make中,我只是声明对目标名称旁边的inputFile.mine或* .mine的依赖,但是我无法轻易找到如何使用Gradle执行此基本操作。目前,我强制任务始终使用下面可能难看的解决方法执行。我想用一些dependsOn * .mine替换它。 Gradle用户指南有一整章专门解释指定文件的不同方法,但我没有看到如何声明依赖项。
task generateXML(type: Exec) {
generateXML.getOutputs().upToDateWhen({false}) // Force it to execute always
executable("java.exe")
args("-jar", "resources/generateXml.jar", "src/inputFile.mine")
}
感谢您帮助新手。
答案 0 :(得分:0)
您可以在Gradle中定义任务输入和输出。
例如:
task generateXML(type: Exec) {
inputs.file ("src/inputFile.mine")
executable("java.exe")
args("-jar", "resources/generateXml.jar", "src/inputFile.mine")
}
有关详细信息,请参阅https://docs.gradle.org/current/userguide/more_about_tasks.html和https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskInputs.html。
附注:当您使用-i
运行构建时,Gradle会告诉您在最新检查期间发生了什么。