2011-08-18 27 views
3

所有

我道歉,如果這已經被問過,但我不能在任何地方找到合適的崗位。我試圖在Jenkins實例中用jankins-cli.jar使用Jenkins cli構建一份工作。詹金斯 - 建立與CLI結果的作業顯示java.lang.NullPointerException

我能夠使用顯示幫助信息:

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> 

但是,由於某種原因,我可以在我的詹金斯情況下使用不建工作詹金斯cli。它總是導致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) 
+0

您是否驗證過您不缺少任何命令行參數?如果您有,您可能遇到了Jenkins CLI的錯誤。 – Bernard

回答

0

我遇到了同樣的問題,可以用下面的步驟解決這個問題:

之後,開始構建java -jar jenkins-cli.jar -i keyfile -s http://jenkins.<company>.com:8080/hudson build <job>沒有任何例外。

0

我不知道你是否得到了正確的答案。這應該工作:

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 

注意:如果參數順序不正確,您會發現像「沒有這樣的命令: - 用戶名」的錯誤。