Jenkins沙箱模式下java.nio.file.Paths.get()的非静态等效方法查询
方案1:使用Jenkins内置joinPath步骤(推荐)
这是Pipeline Utility Steps插件提供的官方标准步骤,沙箱模式默认允许调用,既不需要访问任何静态方法,也无需实例化File对象,可直接实现多路径片段的自动拼接,且会自动适配当前操作系统的路径分隔符。
用法示例:
// 传入任意数量的路径片段参数即可 def fullPathStr = joinPath('app', 'config', 'prod', 'config.yaml') // Linux环境输出:app/config/prod/config.yaml // Windows环境输出:app\config\prod\config.yaml
如果仅需要得到合法的路径字符串,该方案是最优选择,完全不需要手动处理边界情况。
方案2:Path实例resolve链式调用(需获取初始Path对象)
如果你确实需要得到Java原生Path类型对象,可以使用Path类的非静态resolve方法实现多路径拼接,效果和Paths.get完全一致,不需要调用任何静态方法。
你只需要从现有上下文获取任意一个合法的初始Path实例(比如当前工作目录对应的Path对象),链式调用resolve方法即可:
// 假设basePath是你从上下文获取的初始Path实例 def targetPath = basePath.resolve('app').resolve('config').resolve('prod').resolve('config.yaml')
resolve是Path类的原生实例方法,不属于禁止的静态调用范畴,也不需要实例化File对象,符合沙箱限制要求。
内容的提问来源于stack exchange,提问作者trevoryao
相关产品推荐
相关产品推荐

