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