Jenkins管道和java.nio.file。*方法的问题
这是管道脚本的规范。它写在@L_419_0@。
readFile步骤从工作空间中加载文本文件并返回其内容 (请勿尝试使用java.io.File方法-这些将引用Jenkins运行所在的主文件上的文件,而不是当前工作空间中的文件)。
还有一个writeFile步骤可以将内容保存到工作空间中的文本文件中
fileExists 步骤检查文件是否存在而不加载它。
您可以在节点中使用这些Jenkins步骤来代替java.io.File或java.nio.file.Files如下所述。
String slavePath = ’C:Somethingonlyonslavenode’String masterPath = ’D:Somethingonlyonmasternode’stage(’One’) { node (’slave’) {bat returnStatus: true, script: ’set’println fileExists(slavePath) // Should be trueprintln fileExists(masterPath) // Should be false } node (’master’) {bat returnStatus: true, script: ’set’println fileExists(slavePath) // falseprintln fileExists(masterPath) // true }}解决方法
我正在尝试使用java.nio.file。*中的方法在Jenkins管道中执行一些基本文件操作。无论代码所在的节点块如何,代码都在主节点上执行。在管道中,我已经验证了各种节点块是正确的-它们唯一地标识特定的节点。但是,pathExists(以及其他移动,复制或删除文件的代码)始终在主节点上执行。任何想法正在发生或如何解决?
import java.nio.file.*String slavePath = ’C:Somethingonlyonslavenode’String masterPath = ’D:Somethingonlyonmasternode’def pathExists (String pathName){ def myPath = new File(pathName) return (myPath.exists()) }stage(’One’) { node (’slave’) {bat returnStatus: true,script: ’set’println (pathExists(slavePath)) // Should be true but is false.println (pathExists(masterPath)) // Should be false but is true. } node (’master’) {bat returnStatus: true,script: ’set’println (pathExists(slavePath)) // falseprintln (pathExists(masterPath)) // true }}
相关文章:
1. node.js - 在nodejs环境中如何配置webhook以实现hexo博客的自动更新?2. node.js - win10如何安装并使用babel?3. node.js - 使用babel后console.log中输出“33”时程序报错 如何解决4. 前端 - date属性的input文本框在微信上会出现奇怪的边框?5. docker内创建jenkins访问另一个容器下的服务器问题6. html5 - 用h5本地存储是否安全?7. docker安装后出现Cannot connect to the Docker daemon.8. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安装失败???9. css3 - 新版支付宝 账单页面滑动时月份栏被下一个月给顶上去是什么效果10. 微信端电子书翻页效果

网公网安备