Gradle - 复制/重命名文件 - 为所有文件制作0文件大小/字节

Aru*_*gal 11 byte copy rename zero gradle

我正在使用Gradle构建来编译Java.

在构建过程中,我获得了成功的构建可交付成果但是我想添加一些额外的文件,这些文件只是Gradle build在构建的".war"文件中存在的一些文件的复制或重命名.

以下代码是我正在使用的.我要做的是:

1.在build/tmp/warApplication文件夹中取消.war文件
2.将文件复制/重命名为oldname-1.2.3到newname-1.2.3
3.复制/重命名oldname. war.properties文件到newname.war.properties
4.将oldname.jar.properties文件复制/重命名为newname.jar.properties
5.对build/tmp/warApplication文件夹中的所有数据进行war并创建原始.war文件(即projectname.战争)

问题:
1.在unwar步骤完成后,我在tmp/warApplication文件夹下看到,树中的所有文件都有有效的文件大小.2. warApplication.doLast - 工作即它不会给出任何错误消息.
3.完成所有复制/重命名步骤后,我看到tmp/warApplication文件夹树或子树级别下的文件大小现在是0字节大小.

我错过了什么?如何将大小为X字节的文件A复制到相同X字节的文件B.

// add a few extra files
warApplication.doLast {
   def tempWarDirU = new File("${buildDir}/tmp/warApplication")
   tempWarDirU.mkdirs()
   ant.unwar(src: "${buildDir}/thidsWar/${thidsProjectName}.war",
            dest: "${buildDir}/tmp/warApplication")

   println ""
   println "--- Inside warApplication - last stage ---"
   println ""
   copy {
      from "${buildDir}/tmp/warApplication"
      into "${buildDir}/tmp/warApplication"
      rename (/([a-z]+)-([0-9]+\.[0-9]+.+)/, 'newname-$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      rename (/([a-z]+)\.war\.([a-z]+)/, 'newname.war.$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      rename (/([a-z]+)\.jar\.([a-z]+)/, 'newname.jar.$2')
   }

   ant.jar ( update: "true", destfile: "${buildDir}/thidsWar/${thidsProjectName}_1.war") {
      fileset(dir: "${buildDir}/tmp/warApplication",includes: '*/**')
   }
   println ""
   println ""
}
Run Code Online (Sandbox Code Playgroud)

Aru*_*gal 18

由于Pete N.一个更简单的解决方案.

task renABCToXYZ {
    doLast {
        file("ABC").renameTo(file("XYZ"))
    }
}
Run Code Online (Sandbox Code Playgroud)


Aru*_*gal 6

不得不提到"包括"部分.没有它,它将所有文件复制到树中的0字节.

   copy {
      from "${buildDir}/tmp/warApplication"
      into "${buildDir}/tmp/warApplication"
      include "${thidsProjectName}-$project.version"
      rename (/([a-z]+)-([0-9]+\.[0-9]+.+)/, 'newname-$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      include "${thidsProjectName}.war.properties"
      rename (/([a-z]+)\.war\.([a-z]+)/, 'newname.war.$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      include "${thidsProjectName}.jar.properties"
      rename (/([a-z]+)\.jar\.([a-z]+)/, 'newname.jar.$2')
   }
Run Code Online (Sandbox Code Playgroud)