2017-04-26 97 views
2

我有一個外部工具應該在我的jenkins作業之一中作爲構建步驟調用。不幸的是,這個工具在引用命令時遇到了一些問題,以避免調用路徑中的空白問題。如何爲jenkins multibranch管道項目設置特定的工作區文件夾

Jenkins安裝在C:\Program Files (x86)\Jenkins。因此我在jenkins調用外部工具時遇到了麻煩。

我試過的是將Jenkins-> configuration中的「Workspace Root Directory」設置爲C:\jenkins_workspace,以避免任何空格。這適用於自由式項目,但我的多分支管道項目仍被簽出並建在C:\Program Files (x86)\Jenkins\workspace之下。

一個解決方案是將整個詹金斯裝置移動到例如C:\jenkins。這我想避免。是否有正確的方法告訴Jenkins Pipeline作業使用「工作空間根目錄」?

感謝所有幫助

+0

感謝奧利維爾的改進.. – Michael

回答

5

ws指令設置裏面的命令的工作區。聲明式管道,是這樣的:

ws("C:\jenkins") { 
    echo "awesome commands here instead of echo" 
} 

,您還可以通過使用agent塊(通常在pipeline塊的頂部)設置它在全球範圍,並在該水平將它應用於node

pipeline { 
    agent { 
    node { 
     label 'my-defined-label' 
     customWorkspace '/some/other/path' 
    } 
    } 
    stages { 
    stage('Example Build') { 
     steps { 
     sh 'mvn -B clean verify' 
     } 
    } 
    } 
} 

另一個node指令稍後可能會覆蓋它。在https://jenkins.io/doc/book/pipeline/syntax/上搜索customWorkspace。您也可以將它與dockerdockerfile指令一起使用。

+0

感謝凱文,這適用於所有命令的身體ws。有沒有辦法爲jenkins管道文件中的所有階段設置工作區? 否則,我將不得不在每個階段重複ws(「C:\ jenkins」... – Michael

+1

編輯爲包含此問題的答案 – burnettk

+0

好,代理部分解決我的問題。謝謝 - 答案已接受:-) – Michael

相關問題