jenkins+maven+git持續整合部署問題總結
阿新 • • 發佈:2018-12-09
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.Maven 3Builder.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/