【问题解决】Jenkins使用File的exists()方法判断文件存在,一直提示不存在的问题

news/2025/3/6 18:32:35/

小剧场

最近为了给项目组提供一个能给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工具的的确确能提升开发效率,真不错!


http://www.ppmy.cn/news/1577137.html

相关文章

nlp第十节——LLM相关

一、模型蒸馏技术 本质上是从一个大模型蒸馏出小模型,从小模型训练出来的概率分布(如自回归模型预测下一个字的概率分布)分别与大模型预测的概率分布和ground label求loss。与大模型预测的概率分布用KL散度求loss,与ground label用…

蓝桥杯算法——铠甲合体

问题描述 暗影大帝又开始搞事情了!这次他派出了 MM 个战斗力爆表的暗影护法,准备一举摧毁 ERP 研究院!MM 个暗影护法的战斗力可分别用 B1,⋯,BMB1​,⋯,BM​ 表示。 ERP 研究院紧急召唤了 NN 位铠甲勇士前来迎战!每位铠甲勇士都…

如何在React中正确处理异步操作?

文章目录 1. 引言2. 异步操作的典型场景与潜在问题2.1 典型场景2.2 常见问题 3. 基本原则与最佳实践3.1 封装异步逻辑3.2 使用React Hooks管理副作用3.3 管理加载、错误与数据状态3.4 防止内存泄漏3.5 避免竞态条件 4. 在React中处理异步操作的方法4.1 使用 useEffect 处理异步…

Webpack分包与合包深度解析

Webpack分包与合包深度解析 引言:现代前端工程的模块化困境 在单页面应用(SPA)复杂度日益增长的今天,一个未经优化的Webpack构建产物可能面临: 首屏加载缓慢(超过3秒白屏)公共模块重复打包&am…

JAVA毕设项目-基于SSM框架的百色学院创新实践学分认定系统源码+设计文档

文末获取源码数据库文档 感兴趣的可以先收藏,有毕设问题,项目以及论文撰写等问题都可以和博主沟通,尽最大努力帮助更多的人! 百色学院创新实践学分认定系统设计与实现 摘 要 本百色学院创新实践学分认定系统是针对目前实践学分认定…

利用golang embed特性嵌入前端资源问题解决

embed嵌入前端资源,配置前端路由的代码如下 func StartHttpService(port string, assetsFs embed.FS) error {//r : gin.Default()gin.SetMode(gin.ReleaseMode)r : gin.New()r.Use(CORSMiddleware())// 静态文件服务dist, err : fs.Sub(assetsFs, "assets/di…

【数据结构】什么是栈||栈的经典应用||分治递归||斐波那契问题和归并算法||递归实现||顺序栈和链栈的区分

文章目录 🥧栈的初步理解:🥧易错:如何判断栈满🥧栈满理解🥧栈的基本运算📚栈操作的伪代码逻辑(顺序和链栈)📕顺序栈运算实现:顺序栈的表示&#x…

机器学习工程师技术图谱和学习路线

机器学习工程师技术图谱与学习路线(2025年) 一、基础阶段 数学基础 线性代数:矩阵运算、特征值与特征分解(主成分分析/PCA的基础)概率与统计:贝叶斯定理、条件概率、假设检验、分布模型(如朴素贝叶斯分类器的基础)微积分与优化:梯度下降、损失函数优化(如神经网络的…