groovy-文件在写入gradle后为空

groovy-文件在写入gradle后为空,gradle,groovy,Gradle,Groovy,我试图在gradle构建文件中使用groovy创建一个文件。文件已创建,但为空,包含以下代码 task prepareJaxb { copy { .. .. } copy { .. .. } copy { .. .. } new File("${projectDir}/build/generated/META-INF/com/example/jaxb").mkdirs() new File("${projectDir}/build/

我试图在gradle构建文件中使用groovy创建一个文件。文件已创建,但为空,包含以下代码

task prepareJaxb {

copy {
    ..
    ..
}
copy {
    ..
    ..
}
copy {
    ..
    ..
}


  new File("${projectDir}/build/generated/META-INF/com/example/jaxb").mkdirs()

  new File("${projectDir}/build/generated/META-INF/com/example/jaxb/jaxb-packages.properties").withWriter('utf-8') { 
     writer -> writer.writeLine "com.example.xml.endpoint=endpoint.xsd\n" 
  }
}

我需要创建更多的文件,但我被困在这里。我需要刷新它吗?

好吧,您编写文件的Groovy代码看起来不错,但是Gradle one有一个问题。通常,放置在任务中的代码是任务的配置,只要Gradle对构建文件求值,就会执行这些代码,因此在任务执行期间应该执行的代码必须放在“doLast”或“doFirst”闭包中。我按原样运行了prepareJaxb任务(减去副本闭包),它按预期使用文本行编写了文件。作为构建的一部分,它运行良好,并且直接运行prepareJaxb任务。您可能希望尝试从此任务中剥离副本闭包,以查看这是否解决了您的问题。您始终可以为复制功能创建单独的任务。