我目前正在使用下面的代碼來獲取在當前提交和主分支之間更改的檔案串列:
gitOutput = bat script: "git diff-tree -r --no-commit-id --name-only HEAD origin/master", returnStdout: true
changedFiles = gitOutput .split("\n")
echo changedFiles.toString()
這是我得到的輸出:
[
, D:\home\jenkins\myjob>git diff-tree -r --no-commit-id --name-only HEAD origin/master
, Jenkinsfile, MyData/Program.cs]
我想得到的輸出是:
[Jenkinsfile, MyData/Program.cs]
我試圖添加 .trim() 但我得到:
No signature of method: [Ljava.lang.String;.trim() is applicable for argument types: () values: []
而且我不確定如何洗掉我的命令而不是實際輸出的元素
uj5u.com熱心網友回復:
發生這種情況是因為您直接將 bat 命令分配給變數,這導致您的命令及其輸出被寫入變數。
為避免這種情況,請使用:
def gitOutput = bat(script: script, returnStdout: true)
其中 script 是需要運行的命令。這將只回傳輸出而不是命令。
uj5u.com熱心網友回復:
我找到了一個解決方案:
listOfFiles[2..-1]我可以洗掉前兩個元素并擁有我需要的東西
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/516120.html
標籤:詹金斯时髦的
