Java 是否复制并重命名DefaultTask类中的文件?

Java 是否复制并重命名DefaultTask类中的文件?,java,groovy,gradle,Java,Groovy,Gradle,我想复制我的srcDir中名称中包含$$的所有文件。例如,如果文件是: x$$y.java 我想创建该文件的副本,并将其命名为x$y.java class MyTask extends DefaultTask { @InputDirectory File srcDir @TaskAction def task() { def srcFiles = project.files(project.fileTree(dir: srcDir)).getFiles() srcFiles.eac

我想复制我的
srcDir
中名称中包含$$的所有文件。例如,如果文件是:

x$$y.java
我想创建该文件的副本,并将其命名为
x$y.java

class MyTask extends DefaultTask {

@InputDirectory File srcDir

@TaskAction
def task() {
  def srcFiles = project.files(project.fileTree(dir: srcDir)).getFiles()
  srcFiles.each { file ->  
        if (file.name.contains("\$\$")) {
           // TODO copy file and rename it to the same name with one dollar sign in the middle

        }
  }
}
}
如何在自定义任务类中复制和重命名文件?

您可以使用类:

有关更多选项,请参阅。

尝试:

@TaskAction
def task() {
   project.copy {
      from(project.fileTree(dir: srcDir).files) {
         include {
           it.file.name.contains('$$')
         }
      }
      into('somewhere')
      rename { name ->
         name.replace('$$', '$')
      }
   }
} 

还有什么方法可以完成更多的gradle任务吗?@confile,刚刚更新过,现在更简单了。
@TaskAction
def task() {
   project.copy {
      from(project.fileTree(dir: srcDir).files) {
         include {
           it.file.name.contains('$$')
         }
      }
      into('somewhere')
      rename { name ->
         name.replace('$$', '$')
      }
   }
}