Вы можете написать пути Windows с обратными слешами, но вы должны избегать их.
Редактировать: На самом деле вы не можете указать абсолютный путь в аргументе includes
.
def srcFileName = new File(fullSrcFilePath).name
def escapedSrcFolder = new File(fullSrcFilePath).getParent().replace('/', '\\\\')
def escapedDestFolderPath = destFolderPath.replace('/', '\\\\')
dir(escapedSrcFolder) {
fileOperations([
fileCopyOperation(
flattenFiles: true,
includes: srcFileName,
targetLocation: escapedDestFolderPath
)
])
}
Edit # 2: Если вы получаете свой конвейер из SCM, вы не можете использовать методы File
, поэтому для этих случаев вы можете использовать следующие регулярные выражения:
def String getParent(String path) {
path.replace('/', '\\') - ~/\\[^\\]+$/
}
def String getFileName(String path) {
(path.replace('/', '\\') =~ /[^\\]+$/)[0]
}