1、這個問題出現在單獨構建一個項目的子模塊時,很奇怪,構建父項目沒有問題。
Executing Maven: -N -B -f /root/.jenkins/workspace/newMer/pom.xml clean install -Dmaven.test.skip=true tomcat:run java.lang.NullPointerException at jenkins.maven3.agent.Maven33Main.launch(Maven33Main.java:176) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at hudson.maven.Maven3Builder.call(Maven3Builder.java:139) at hudson.maven.Maven3Builder.call(Maven3Builder.java:70) at hudson.remoting.UserRequest.perform(UserRequest.java:212) at hudson.remoting.UserRequest.perform(UserRequest.java:54) at hudson.remoting.Request$2.run(Request.java:369) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Started by user jenkins Finished: ABORTED
通過排查暫時可以這樣解決:jenkins的全局工具中maven的版本不是使用3.5,需要修改成3.3.9就可以了。
2、多模塊項目構建問題,正常情況下jenkins會把父模塊下面所屬的所有子模塊都構建一下,這時候我們有可能只改了一個模塊,不想把所有的子模塊進程都殺掉,然后再重啟。
這個問題我用了一個比較笨的方法,就是以每個模塊名為基礎新建多個任務,這樣構建打包還是所有的,但是可以根據任務名配置相應的模塊進去再重啟等操作。
3、管理用戶,jenkins默認就是不允許注冊的,我們需要先解開這個限制,然后注冊一個賬號,就可以給這個賬號分配權限了。
4、jenkins+Publish Over SSH插件實現遠程服務器發布部署。
首先下載好Publish Over SSH插件后,在系統管理>系統設置里面有個Publish Over SSH選項,設置SSH Servers后點擊高級設置密碼和端口,最后可以用test configuration測試一下是否可以連接。
其中source files和Remote directory都是要寫相對路徑,source files默認是在當前jenkins執行任務得工作空間,Remote directory是指遠程服務器的用戶默認目錄如:我的用戶名是manager 默認目錄就是/home/manager/

5、在jenkins源碼管理中配置Branch Specifier (blank for 'any')無效。
這是因為配置分支后,jenkins的對當前包構建的目錄名會拼上-分知名,所以相應的shell命令也要修改。

