Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 如何清理自定义增量生成?_Gradle_Incremental Build - Fatal编程技术网

Gradle 如何清理自定义增量生成?

Gradle 如何清理自定义增量生成?,gradle,incremental-build,Gradle,Incremental Build,我正在努力实现以下目标- 在源文件目录中递归运行 如果至少修改了一个文件,请执行编译 为此,我采取了以下措施: class IncrementalIosBuildTask extends DefaultTask { @InputDirectory def File inputDir @TaskAction void execute(IncrementalTaskInputs inputs) { def shouldRecompile = !inp

我正在努力实现以下目标-

  • 在源文件目录中递归运行
  • 如果至少修改了一个文件,请执行编译
  • 为此,我采取了以下措施:

    class IncrementalIosBuildTask extends DefaultTask { @InputDirectory def File inputDir @TaskAction void execute(IncrementalTaskInputs inputs) { def shouldRecompile = !inputs.incremental; inputs.outOfDate { change -> shouldRecompile = true return } inputs.removed { change -> shouldRecompile = true return } if (shouldRecompile) { println("compiling...") } } } task myCompile(type: IncrementalIosBuildTask) { inputDir file("mylib") } 类IncrementalIosBuildTask扩展了DefaultTask{ @输入目录 def文件inputDir @任务行动 void execute(递增的AltaskinPuts输入){ def shouldRecompile=!inputs.incremental; inputs.outOfDate{change-> shouldRecompile=true 返回 } inputs.removed{change-> shouldRecompile=true 返回 } 如果(应该重新编译){ println(“编译…”) } } } 任务myCompile(类型:IncrementalIosBuildTask){ inputDir文件(“mylib”) }
    • 这就是诀窍,我的问题是,如何强制它重新编译
    • 我可以使自定义增量生成不是最新的吗
    • e、 g cleanMyCompile任务不是自动生成的,我如何才能生成它或手动创建它

    事先谢谢你

    你到底想在这里实现什么?你得到1。二,。只需使用
    @InputDirectory
    注释即可免费使用(就像您已经做的那样)
    IncrementAltaSkinput
    用于根据更改的文件只执行工作的子集。对于编译,这意味着增量编译,这通常不容易自己实现(因为它不足以重新编译更改的源代码)。我试图实现的是-我有一些源代码需要发送到远程机器进行编译,输出是二进制静态库文件。我不希望每次运行构建时都重新编译它,我还希望gradle clean能够工作,所以如果我希望它强制重新编译,我将能够。这方面的最佳方法是什么?感谢您必须使用
    @InputDirectory
    @OutputFile
    ,后者配置为
    $buildDir
    下的某个位置。无需
    递增AltaSkinPuts
    。您可以通过迭代
    project.fileTree(inputDir)
    来获取输入文件。