2012-02-16 87 views
1

我想根據解析解析jenkins中的工件名稱及其版本我需要在當前項目之前觸發其他構建作爲預構建。我怎麼能在詹金斯做到這一點,我找不到任何可以提供POM的文物作爲變量的插件。有沒有辦法做到這一點,而不寫任何腳本代碼?如何獲得jenkins中的pom.xml內容

+0

對不起 - 你能稍微解釋一下嗎? – 2012-02-16 14:16:22

+0

好吧,讓我有一個項目和相關工作在詹金斯,並在其POM有標籤 com.B 1.0我需要解析,以觸發作業B與元素的依賴和它的其他元素在構建A之前寫入A項目的pom.xml中的版本。因此,當單擊A的構建按鈕時,應該在構建A之前構建作業B。我希望我能夠解釋我的問題:) – user1117693 2012-02-17 09:16:15

回答

1

簡短的回答:不是沒有編碼你自己的插件。

採取詹金斯插件和快速入門原型你對你產生插件的執行方法:

@Override 
public boolean perform(AbstractBuild build, 
      Launcher launcher, 
      BuildListener listener) { 

您可以訪問的信息是這樣的:

for (Iterator iterator = build.getProject().getAllJobs().iterator(); iterator.hasNext();) { 
    Job currentJob = (Job) iterator.next();    
    if (currentJob instanceof MavenModuleSet) { 
     MavenModuleSet mms = (MavenModuleSet) currentJob; 
       for (Iterator iter = mms.getModules().iterator(); iter.hasNext();) { 
         MavenModule currentModule = (MavenModule) iter.next(); 

currentModule是你的模塊從根POM .xml,請記住jenkins中的名字currentModule.getName is NOT artifact na我作爲maven specs,但groupid:artifactid改爲。

0

您可以通過將POM變量作爲Jenkins環境變量來獲取它。 ,然後使用$ variablename訪問任何地方的pom內容。