小剧场
最近为了给项目组提供一个能给Java程序替换前端、后端的增量的流水线,继续写上了声明式流水线。
替换增量是根据JSON配置文件去增量目录里去取再替换到对应位置的,替换前需要判断增量文件是否存在。
判断文件是否存在?作为一个老Javaer那还不简单,随手就敲上了Groovy语法的代码:
def filePath = "/path/to/path/myFile"
if(new File(filePath).exists()){
println '增量存在'
}else{
println '增量不存在'
}
然后在本地环境的Jenkins(单主节点)运行一直没问题,然后脚本代码提交到后,再使用公司的Jenkins去运行代码。
发现无论文件是否存在,它都会提示“增量不存在”!
我还尝试在if判断前列出文件,代码变成了:
def filePath = "/path/to/path/myFile"
sh "ls -l ${filePath}"
if(new File(filePath).exists()){
println '增量存在'
}else{
println '增量不存在'
}
然后更神奇的现象出现了:ls -l
的确列出了文件,然后输出”增量不存在“!
问问deepseek
解决
通过AI工具的分析,发现了个隐藏的知识:new File()
会在Jenkins主节点执行!要想判断文件存在,使用fileExists
方法更靠谱!
我这边正好不涉及agent节点非Linux的情况,问题一下子就确认了。好家伙,困扰我1个小时的问题竟然就这么轻松的解决了。
代码改写如下:
def filePath = "/path/to/path/myFile"
if(fileExists(filePath)){
println '增量存在'
}else{
println '增量不存在'
}
AI工具的的确确能提升开发效率,真不错!