「Groovy」- 处理路径地址

问题描述

在 Jenkins Pipeline 中,我们需要使用路径,比如拼装、替换、判断等等。但是大家对于路径书写习惯不同,比如当前目录是否会使用 ./ 前缀,目录结尾是否会使用 / 后缀。这些不同书写习惯会影响路径处理,比如比较、判断、截取等等。

该笔记将介绍处理路径的 Path、Paths 类库,以解决路径书写风格迥异的问题。

相关文档

Java SE 7/java.nio.file.Paths
Java SE 7/Interface Path

使用方法

import java.nio.file.Paths

// 加载并格式化路径
def p = Paths.get("./note/demo/f.txt").normalize()
println p.toString() // => note/demo/f.txt
println Paths.get("./note/demo/").normalize().toString() // => note/demo

// 判断路径是否以 XXXXX 开始
println p.startsWith(Paths.get("./././././note").normalize())

// 获取父级路径
println p.getParent() // 去除最后部分的路径 note/demo

// 获取文件名,即路径最后部分
println p.getFileName().toString() // => f.txt

参考文献

How to split a path platform independent?
Java SE 7/java.nio.file.Paths
Java SE 7/Interface Path