假设我有一个任务类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,如果命令行参数改变了进入{的内容,也行不通{1}}字段。我想到的另一个是用myTask.conversion
方法将值写入文件并将其放在setConversion()
列表中,但同样,这是一个黑客攻击。
如何让gradle注意到官方方式的更改?如果您知道我在哪里可以阅读更多相关内容,请不要停留链接;)
我看了More about Tasks和Writing Custom Plugins,但它没有给我任何线索。
答案 0 :(得分:1)
有一个方便的@Input
annotation,与Opal's answer相同(查看其source code),但更简洁一点:
Uri.parse("tel:" + stringtelefon)
这是关于此的Gradle goodness article。
答案 1 :(得分:0)
不确定它是否有用,但我会尝试:
alert($(".test option:selected").val());
请你检查一下吗?