jenkins 安裝 SVN Publisher 后向 svn 提交代碼報錯: E170001: Authentication required for...


問題描寫敘述

    安裝並啟動 jenkins 后,加入了 SVN Publisher 插件,然后在構建任務的“構建后操作”操作中加入了“Publish to Subversion repository”相關的配置。如圖所看到的:

可是每次構建完畢之后並沒有將相應的 jar 包成功提交到 svn 倉庫中。在 jenkins 構建任務的“Console Output”頁面中也並沒有提示相關的錯誤信息。

系統環境

操作系統:CentOS 6.5

JDK: 1.6.0_45

Jenkins:1.602

問題分析

    由於構建任務的“Console Output”頁面沒有顯示不論什么錯誤信息。所以就查看 jenkins 的日志文件(/var/log/jenkins/jenkins.log)了。在日志文件的末尾處看到了相關的錯誤信息:

Mar 20, 2015 6:28:39 PM com.mtvi.plateng.subversion.SVNForceImport forceImport
INFO: null Name
SVNForceImport Error: svn: E170001: Authentication required for '<http://svn-server:80> CentOS Code Slave SVN1.7.16 Server'
Mar 20, 2015 6:28:40 PM com.mtvi.plateng.subversion.SVNForceImport forceImport
SEVERE: *SVNForceImport Error: svn: E170001: Authentication required for '<http://svn-server:80> CentOS Code Slave SVN1.7.16 Server'
從上述錯誤信息可得知是由於 SVN 的安全認證失敗了,從而導致文件沒有被正確提交到 SVN。

於是嘗試通過“系統管理”-->“系統設置”。改動 SVN Publisher 插件的全局設置,將 SVN 的username和password給保存上,例如以下圖所看到的:

然后,又一次運行相應的構建任務,發現問題依舊存在,並且日志文件里的錯誤信息也還一模一樣,所以僅僅能繼續尋找其它解決方式。最后最終在 stackoverflow 上找到了相應的解決方式,詳細操作例如以下。

解決方式

1. 改動用戶 jenkins 的默認 shell。將 /etc/passwd 文件里以 jenkins 開頭的那一行末尾處的 /bin/false 改為 /bin/bash,改動后的結果為:

2. 安裝 subversion(假設沒有安裝過的話): # yum install subversion

3. 將 Linux 終端換為 jenkins 用戶: # su - jenkins

4. 刪除 ~/.subversion 文件夾(假設存在的話): $ rm -fr ~/.subversion

5. 運行一下 svn  的 checkout 操作,目的是保存 svn 的username和password: $ svn checkout --username dev-ci(你的 SVN username) http://svn-server/testRepository/trunk/。輸入完password后。會詢問你是否須要保存password。輸入 yes 以保存 SVN password。

    至此。全部操作已經完畢。你僅僅需又一次回到 jenkins 的視圖頁面。又一次運行相應的構建任務就可以。本次運行完畢后,“Console Output”頁面的末尾處多輸出了幾條將文件提交到 SVN 的信息:

SVN Publisher: target: /var/lib/jenkins/jobs/my-jenkins-task/workspace/target
SVN Publisher: Deleting Remote Item: xxx.jar
SVN Publisher: Importing Item: xxx.jar
Finished: SUCCESS
使用 TortoiseSVN 瀏覽版本號庫,看到確實將相應的 jar 提交上來了:

參考資料:
http://stackoverflow.com/questions/18417597/svn-checkout-not-working-for-jenkins
http://stackoverflow.com/questions/17464993/jenkins-cannot-acces-to-svn-https


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM