jenkins+maven+git持续集成部署问题总结

时间:2024-09-26 21:35:44

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/

jenkins+maven+git持续集成部署问题总结

5、在jenkins源码管理中配置Branch Specifier (blank for 'any')无效。

这是因为配置分支后,jenkins的对当前包构建的目录名会拼上-分知名,所以相应的shell命令也要修改。

jenkins+maven+git持续集成部署问题总结