Gradle-перемещение папки из ABC в XYZ
Каталог Структуру:
Project1/ABC / file1.txt
Я хочу, чтобы вышеуказанная папка ABC была перемещена / переименована в XYZ (не оставляя ABC там).
Как я могу сделать это с помощью Gradle. Похоже на Gradle: для правой руки это зуд в правом ухе, используя левую руку, принимая ее через макушку головы.
я использовал следующий пример: но он ничего не делает:
task renABCToXYZ(type: Copy) << {
copy {
from "Project1"
into "Project1"
include 'ABC'
rename ('ABC', 'XYZ')
}
}
3 ответов
объявление вашей задачи неправильно объединяет Copy
тип задач и project.copy
метод, в результате чего задача не имеет ничего для копирования и, следовательно, никогда не запускается. Кроме того, Copy
не является правильным выбором для переименования каталога. Нет API Gradle для переименования, но немного кода Groovy (использование Java File
API). Предполагая Project1
- это каталог проекта:
task renABCToXYZ {
doLast {
file("ABC").renameTo(file("XYZ"))
}
}
глядя на большую картину, вероятно, лучше добавить логику переименования (т. е. doLast
действие задачи) к задаче, которая производит ABC
.
с решением, приведенным выше, вы можете переименовывать файлы и папки, вы можете перемещать файлы, но вы не можете перемещать папки в другое место назначения с renameTo. Для этого случая вы должны использовать ant.двигаться:
ant.move(file: sourceDir, tofile: targetDir)
Примечание: вопрос заключается в переименовании папок. Таким образом, ответ выше правильный (но вопрос немного двусмысленный). Но, возможно, мой ответ полезен для других пользователей, которые натыкаются на этот вопрос и хотят переместить папку.
следующий код переместит файл из одного каталога в другой и переименует файл
task wb764Jar( type: Jar ) {
doFirst{
copy {
from 'deployment/alpha/workbench_alpha7_64.jnlp'
into 'build/libs/jar_merge/developed/alpha64/JNLP-INF/'
rename('workbench_alpha7_64.jnlp', 'APPLICATION.JNLP')
}
}
baseName = 'WorkbenchMaster7_64'
from files(wbLibsDir + '/jar_merge/developed/alpha64/')
from zipTree("$wbJar.archivePath")
}