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. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?2. css3 - 純css實現點擊特效3. javascript - Img.complete和img.onload判斷圖片加載完成有什么區別?4. java中返回一個對象,和輸出對像的值,意義在哪兒5. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?6. docker網絡端口映射,沒有方便點的操作方法么?7. javascript - 有適合開發手機端Html5網頁小游戲的前端框架嗎?8. 推薦好用mysql管理工具?for mac和pc9. css - 網頁div區塊 像蘋果一樣可左右滑動 手機與電腦10. javascript - 關于apply()與call()的問題
