java - 复制并重命名 DefaultTask 类中的文件?

标签 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.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('$$', '$')
      }
   }
} 

关于java - 复制并重命名 DefaultTask 类中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29556442/

相关文章:

java - 获取最接近数组中数字的值

java - while 循环和存储数据的问题

java - ServerRpcHandler 中的 Vaadin NPE

grails - 覆盖Setter&Getter Domain类

java - jrebel 排除文件 ( messages.properties )

groovy - 小于 Groovy case/switch 语句

gradle - 在groovy中,如何从build.gradle获得额外的键值

android - Gradle Build 卡在生成调试源上

java - Spring Boot Kotlin项目无法在运行时加载Java类

java - Gradle找不到tools.jar