我正在爲Jenkins編寫構建通知插件。 SCM存儲庫URL(SCM作爲git開始)包含我想要在代碼中獲得的有用信息。作爲Jenkins API的初學者,我很難弄清楚我應該如何去檢索作業的存儲庫位置。這是可行的,如果是這樣,如何?在Jenkins構建插件中獲取作業存儲庫URL
2
A
回答
1
終於找到了答案!所需的方法未在摘要SCM類中定義,而是由擴展它的類定義。所以當你打電話給project.getSCM()
時,你必須把它轉換成你實際擁有的SCM類型(GitSCM,SubversionSCM等)。
我發展我的插件使用Subversion的工作,所以我通過source code尋找Subversion的插件,並發現它返回一個ModuleLocation[]
包含在該項目中所有SVN倉庫的信息的方法getLocations
。簡單地循環訪問ModuleLocation[]
並致電getSVNURL()
可以獲得我想要的信息。然後,我可以根據需要使用SVNURL(toString()
爲我提供完整的存儲庫路徑)。
對於你的情況,對於Git,source code顯示有一種方法稱爲getRepositories()
,它返回List<RemoteConfig>
。查看RemoteConfig source code,瞭解哪種方法可以爲您提供所需的信息。 (我相信getURIs()
將做到這一點)。
3
存儲庫在作業的config.xml中可用。
的http:// [詹金斯服務器] /工作/ [任務] /config.xml
2
我設法SVN倉庫的URL使用下面的代碼特殊作業:
String jobName = manager.build.project.getName()
def job = hudson.model.Hudson.instance.getItem(jobName)
def svnScm = job.scm
def svnLocation = svnScm.getLocations()
def svnURLstr = svnLocation[0].getSVNURL().toString()
也許這將是有用的人。
相關問題
- 1. Jenkins管道作業構建
- 2. 延遲構建Jenkins作業
- 3. 是否可以配置Jenkins構建作業以從本地Maven存儲庫中選擇maven構件
- 4. Jenkins構建執行選定作業的流程插件
- 5. Jenkins推廣構建插件的作業DSL支持
- 6. Git Jenkins插件是否支持存儲庫URL的變量?
- 7. Jenkins git插件不允許存儲庫URL上的參數
- 8. 更改Jenkins中的SVN URL存儲庫
- 9. Jenkins + Git中的存儲庫URL
- 10. jenkins存儲構建文件的結果?
- 11. 獲取本地構建的Jenkins構件
- 12. Jenkins在多重配置作業中預構建和後構建
- 13. 如何通過jenkins中的另一個管道作業構建並獲取管道作業的構建日誌
- 14. Jenkins Git插件無法在作業xml中存儲添加行爲?
- 15. 在Jenkins中爲Multijob插件創建作業
- 16. 如何將文件存儲在jenkins的構建文件夾中?
- 17. 在運行構建流程插件的Jenkins作業中,將其BUILD_NUMBER作爲參數傳遞給子作業
- 18. 開發Jenkins構建插件
- 19. 如何在Jenkins上配置Maven構建作業以告知SonarQube構建作業的URL?
- 20. 如何從eclipse插件的marketplace獲取存儲庫URL和插件ID
- 21. Jenkins - 在構建任何構建作業之前執行腳本
- 22. Jenkins的Git插件不能與BitBucket存儲庫一起工作
- 23. 在Jenkins完成構建後觸發相同的jenkins作業
- 24. 在jenkins中爲liferay portlet創建構建作業
- 25. 如何在jenkins中創建構建作業時調用項目
- 26. 在Jenkins上使用構建管道插件進行參數化作業
- 27. Jenkins:爲Jenkins增強插件 - 插件代碼如何訪問作業的「參數化構建」字符串?
- 28. 我可以從參數化的Jenkins構建作業中獲取參數嗎?
- 29. TFS插件查看構建視圖在Jenkins中構建視圖
- 30. Jenkins工作流程插件:如何從groovy DSL創建作業?
我也在尋找答案,我一直在尋找JavaDocs和插件源代碼,沒有成功。我知道如何使用XML來做到這一點,但這種方式顯得過於複雜,緩慢且容易出錯。必須有一種做'scm.getUrl()'的方法 – Illidanek