gpt4 book ai didi

gradle - 如何在Gradle Task中制作最新的检查通知非文件参数?

转载 作者:行者123 更新时间:2023-12-03 05:15:49 24 4
gpt4 key购买 nike

假设我有一个任务类MyTask,它读取一个输入文件,对其进行一些转换,然后写入一个输出文件(build.gradle):

class MyTask extends DefaultTask {
@InputFile File input
@OutputFile File output
String conversion

@TaskAction void generate() {
def content = input.text
switch (conversion) {
case "lower":
content = content.toLowerCase()
break;
case "upper":
content = content.toUpperCase()
break;
}
output.write content
}
}

project.task(type: MyTask, "myTask") {
description = "Convert input to output based on conversion"
input = file('input.txt')
output = file('output.txt')
conversion = "upper"
}

现在,一切正常,当我在文件系统中更改 input.txt或删除 output.txt时,它将再次执行。
问题是,如果我将 "upper"更改为 "lower" ,它不会执行 ,这是错误的。

我不能(不想)将build.gradle放到输入列表中,因为那将是一个hack,例如,如果命令行参数更改了进入myTask.conversion字段的内容,那也将不起作用。我想到的另一个方法是将该值写入setConversion()方法的文件中,并将其放在inputs列表中,但这又是一个hack。

如何让gradle正式注意到更改? 另外,如果您知道我在哪里可以读到更多有关此内容,请不要保留链接;)

我读了More about TasksWriting Custom Plugins,但是没有任何线索。

最佳答案

不确定是否有帮助,但我会尝试:

class MyTask extends DefaultTask {
@InputFile File input
@OutputFile File output
String conversion

@TaskAction void generate() {
def content = input.text
switch (conversion) {
case "lower":
content = content.toLowerCase()
break;
case "upper":
content = content.toUpperCase()
break;
}
output.write content
}

void setConversion(String conversion) {
this.inputs.property('conversion', conversion)
this.conversion = conversion
}
}

你能检查一下吗?

关于gradle - 如何在Gradle Task中制作最新的检查通知非文件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31053162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com