文件相关性 Gradle
File dependency Gradle
我是一个过渡到 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")
}
感谢您帮助新手。
您可以在 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 and https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskInputs.html。
旁注:当您 运行 使用 -i
构建时,Gradle 会告诉您在最新检查期间发生了什么。
我是一个过渡到 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")
}
感谢您帮助新手。
您可以在 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 and https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskInputs.html。
旁注:当您 运行 使用 -i
构建时,Gradle 会告诉您在最新检查期间发生了什么。