2016-02-11 95 views
1

我正在使用jenkins-dsl插件。 我的種子工作成功完成後,我的dsl config按預期創建了一個新的工作(我們稱之爲新創建的工作「JobA」)。 JobA應該運行一個構建步驟。 當運行職吧,第一次就立即出現以下錯誤失敗:如果我不是去詹金斯UI進入職吧配置選項卡Jenkins DSL作業失敗

ERROR: Build step failed with exception 
java.lang.NullPointerException 
    at org.jvnet.hudson.plugins.SbtPluginBuilder.buildCmdLine(SbtPluginBuilder.java:159) 
    at org.jvnet.hudson.plugins.SbtPluginBuilder.perform(SbtPluginBuilder.java:111) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) 
    at hudson.model.Build$BuildExecution.build(Build.java:205) 
    at hudson.model.Build$BuildExecution.doRun(Build.java:162) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) 
    at hudson.model.Run.execute(Run.java:1741) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:408) 

不過,我什麼都不做,一個,保存工作,比運行再工作,它的工作! 下面附帶DSL。

有什麼建議嗎?

job('JobA') { 
scm { 
    git { 
     remote { 
      github('XXXXXXX') 
      credentials('XXXXXXXX') 
     } 
     createTag(false) 
     branch('*/master') 
    } 
} 

triggers { 
    githubPush() 
} 

//sbt 
steps { 
    sbt('sbt', 
      'clean compile test publish', 
      '-Dsbt.log.noformat=true', 
      '-Xmx2G -Xms512M') 
} 
} 
+0

一切看起來都很好,我可以運行DSL生成的作業,沒有任何問題。雖然我注意到在https://issues.jenkins-ci.org/browse/JENKINS-22718中提到了相同的Java錯誤(雖然你可能有一箇舊版本的插件?),但這並不能解釋爲什麼它在再次保存工作之後起作用。如下所示,在保存之前和之後對作業的「config.xml」進行比較會很有趣。 –

回答

2

嘗試之前和保存工作(或整個工作做得更好取快照)目錄後比較職吧的XML配置。你可能會找到一些東西

0

你確定你在sbt調用中有正確數量的參數嗎? The API for sbt表明可以/應該有五個。 (我不知道哪些可能是可選的。)

或者它可能與job關鍵字有關?在migration notes的第1.30節中,它表示它已被棄用,轉而使用其他更精確的關鍵字。但是,它仍然經常在以下文檔中使用。

如果你從腳本中調用你的DSL,你絕對應該適應,例如freeStyleJob。

+0

該文檔說只有第一個參數'sbt'是必需的;另外四個默認爲'null'。 –