【问题标题】:Jenkins -- build a job with cli results in java.lang.NullPointerExceptionJenkins - 使用 cli 构建作业导致 java.lang.NullPointerException
【发布时间】:2011-08-18 18:13:40
【问题描述】:

全部

如果之前有人问过这个问题,我深表歉意,但我在任何地方都找不到合适的帖子。我正在尝试使用带有 jankins-cli.jar 的 Jenkins cli 在我的 Jenkins 实例中构建工作。

我可以使用以下方式显示帮助信息:

java -jar jenkins-cli.jar -s http://jenkins.<company>.com/hudson help

我也可以登录:

java -jar jenkins-cli.jar -s http://jenkins.<comapny>.com/hudson \
    login --username <username>

但是,由于某种原因,我无法使用 Jenkins cli 在我的 jenkins 实例中构建作业。它总是导致 java.lang.NullPoiinterException。有其他人遇到过这个问题吗?

提前致谢!

java -jar jenkins-cli.jar -s http://jenkins.<company>.com:8080/hudson build <job>
java.lang.NullPointerException
at hudson.util.CaseInsensitiveComparator.compare(CaseInsensitiveComparator.java:40)
at hudson.util.CaseInsensitiveComparator.compare(CaseInsensitiveComparator.java:34)
at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:351)
at java.util.TreeMap.getEntry(TreeMap.java:322)
at java.util.TreeMap.get(TreeMap.java:255)
at hudson.util.CopyOnWriteMap.get(CopyOnWriteMap.java:89)
at jenkins.model.Jenkins.getItem(Jenkins.java:1884)
at hudson.model.AbstractProject.findNearest(AbstractProject.java:1956)
at hudson.cli.handlers.AbstractProjectOptionHandler.parseArguments(AbstractProjectOptionHandler.java:54)
at org.kohsuke.args4j.CmdLineParser.parseArgument(CmdLineParser.java:435)
at hudson.cli.CLICommand.main(CLICommand.java:177)
at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274)
at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:255)
at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)

【问题讨论】:

  • 您是否确认您没有遗漏任何命令行参数?如果有,您可能遇到了 Jenkins CLI 的错误。

标签: java hudson jenkins java.lang.class


【解决方案1】:

我不熟悉您正在使用的工作,但我知道您可以使用此处的 jenkins api 开始工作

https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

这是假设您有一个工作正在运行。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,可以通过以下步骤解决:

    之后,使用java -jar jenkins-cli.jar -i keyfile -s http://jenkins.&lt;company&gt;.com:8080/hudson build &lt;job&gt; 开始构建工作没有任何异常。

    【讨论】:

      【解决方案3】:

      我不确定您是否得到正确答案。这应该有效:

      java -jar jenkins-cli.jar -s <url of the CI server> build <job name> --username <username> --password <password>
      

      例如,如果 CI 服务器是 "http://myserver.com:8080/" ,要构建的作业是 "My_App_Build" ,用户名是 "myusername" ,那么密码是 "mypassword",

      java -jar jenkins-cli.jar -s http://myserver.com:8080 build My_App_Build --username myusername --password mypassword 
      

      注意:如果参数的顺序不正确,您会发现类似“No such command: --username”这样的错误。

      【讨论】:

        猜你喜欢
        • 2014-04-08
        • 2018-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-30
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多