使用参数构建以选择内部版本号

时间:2015-07-06 20:13:02

标签: jenkins nullpointerexception

在Jenkins中有一个构建作业(QA_BUILD)和一个部署作业(QA_DEPLOY)。 QA_DEPLOY作业最初设置为部署最新的稳定版本,并且工作正常。现在我已将其设置为参数化作业,我实际上可以选择要部署的QA_BUILD作业的内部版本号,但它给了我这个错误:

    ERROR: Build step failed with exception
java.lang.NullPointerException
    at java.io.StringReader.<init>(StringReader.java:50)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1035)
    at hudson.plugins.copyartifact.BuildSelectorParameter.getSelectorFromXml(BuildSelectorParameter.java:87)
    at hudson.plugins.copyartifact.ParameterizedBuildSelector.getBuild(ParameterizedBuildSelector.java:52)
    at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:354)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:75)
    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:1744)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Copy artifacts from another project' marked build as failure

这是部署作业的设置方式:

我检查了#34;此版本已参数化&#34;

我选择&#34;构建选择器用于复制工件&#34;我给它起了名字&#34; BuildSelector&#34;

在默认选择器的下拉列表中,我选择了#34;特定版本&#34;

稍后在BUILD步骤中,我选择&#34;从另一个项目中复制工件&#34;

对于&#34;项目名称&#34;我选择了#34; QA_BUILD&#34;这是构建工作。 对于&#34;构建&#34;我选择了#build;由build参数指定#34;在下拉列表中,我参考上面创建的参数&#34; $ {BuildSelector}&#34;

此变量$ {BuildSelector}打破了部署作业。如果我硬编码它构建的现有构建号。如何将其作为我可以设置的参数工作?看起来我做的一切都很正常。

感谢。

2 个答案:

答案 0 :(得分:1)

在&#34;参数名称&#34; &#34;从另一个项目中复制工件&#34; &#34;构建&#34;的子部分QA_DEPLOY作业的一部分,指定&#34; BuildSelector&#34;而不是&#34; $ {BuildSelector}&#34;。

答案 1 :(得分:0)

我应该使用BuildSelector而不是$ {BuildSelector}。问题解决了。