小剧场

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

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

  1. 【转载】C#中List集合使用Exists方法判断是否存在符合条件的元素对象

    在C#的List集合操作中,有时候需要根据条件判断List集合中是否存在符合条件的元素对象,此时就可以使用List集合的扩展方法Exists方法来实现,Exists方法的签名为bool Exists( ...

  2. java中File的delete()方法删除文件失败的原因

    java中File的delete()方法删除文件失败的原因 学习了:http://hujinfan.iteye.com/blog/1266387 的确是忘记关闭了: 引用原文膜拜一下: 一般来说 ja ...

  3. C#取得控制台应用程序的根目录方法 判断文件夹是否存在,不存在就创建

    取得控制台应用程序的根目录方法1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径2:AppDomain.CurrentDomain.BaseDirect ...

  4. 转!!java中File的delete()方法删除文件失败的原因

    一般来说 java file.delete失败 有以下几个原因 1.看看是否被别的进程引用,手工删除试试(删除不了就是被别的进程占用)2.file是文件夹 并且不为空,有别的文件夹或文件, 3.极有可 ...

  5. Python判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  6. Python判断文件是否存在的三种方法【转】

    转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...

  7. Python 判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  8. Java_判断文件是否写入完成

    /** * 等待文件(非目录)读写完毕,费时的操作,不要放在主线程 * * @param file 文件 */ private void waitForWirtenCompleted(File fil ...

  9. C#中判断文件夹中存在某个txt文本

    strFileName="D:\\strarray.txt"; if (File.Exists(strFileName))//判断文件是否存在 { }

  10. Winform下判断文件和文件夹是否存在

    //选择文件夹 FolderBrowserDialog dia = new FolderBrowserDialog(); if (dia.ShowDialog() == System.Windows. ...

随机推荐

  1. 加速人民币国际化,CIPS迎来三大变化

    何谓CIPS? 人民币跨境支付系统(Cross-border Interbank Payment System,简称CIPS)是由中国人民银行组织开发的独立支付系统,为境内外金融机构人民币跨境和离岸业 ...

  2. zz Spring 是一种反模式

    Java 将会消亡 – Martin Vysny – 第一性原理思考 原文标题"Java 将会消亡", 我并不认可 Java 会消亡一说, 作者还处于 FP 亢奋期,而我已经从 F ...

  3. Java线程 interrupt 方法使用异常

    背景 需要在异步任务中中断任务的执行,故选择通过调用 interrupt 方法对线程设置中断信号. 在比较耗时的业务代码增加判断 Thread.currentThread().isInterrupte ...

  4. 使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥

    说明: 对于SSL单向认证:服务器需要CA证书.server证书.server私钥,客户端需要CA证. 对于SSL双向认证:服务器需要CA证书.server证书.server私钥,客户端需要CA证书, ...

  5. Qt编写视频监控显示安卓版

    一.前言 之前就对代码的兼容性做了很好的处理,所以只要开发环境正常,基本的在其他系统比如手机端或者嵌入式linux上重新编译代码即可,最大的难点变成了如何交叉编译对应系统的ffmpeg库,这个在网上有 ...

  6. spark (二) spark wordCount示例

    目录 实现思路 实现1: scala 基本集合操作方式获取结果 实现2: scala map reduce方式获取结果 实现3: spark 提供的map reduce方式获取结果 FAQ: 实现思路 ...

  7. 痞子衡嵌入式:Farewell, 我的写博故事2024

    -- 题图:苏州周庄古镇双桥 2024 年的最后一天,照旧写个年终总结.今年工作上稳步发挥,但是在生活上收获了一个新的爱好,大家可能知道,痞子衡比较爱运动,一直有在打篮球羽毛球桌球.有感于公司乒乓球文 ...

  8. 轻松玩转 JMeter 测试计划组件

    轻松玩转 JMeter 测试计划组件 宝子们,今天咱就来唠唠 JMeter 里那个超重要的测试计划组件,它可是整个性能测试的 "指挥官",把各种测试元素安排得明明白白. 一.测试计 ...

  9. JVM实战—13.OOM的生产案例

    大纲 1.每秒仅上百请求的系统为何会OOM(RPC超时时间设置过长导致QPS翻几倍) 2.Jetty服务器的NIO机制如何导致堆外内存溢出(S区太小 + 禁NIO的显式GC) 3.一次微服务架构下的R ...

  10. IDEA配置Maven(详细版)

    https://blog.csdn.net/qq_42057154/article/details/106114515 IDEA配置MavenIDEA创建Maven工程第一节 IDEA集成Maven插 ...