首先Jenkins是什么呢?就是一种持续集成项目的一款开源软件,是用java写的。部署简单,中文界面,可一键从git clone、pull。也可以打包发布,功能还是很多的,比如可以自动安装jdk、git、maven等等。在项目构建前后执行相关操作,比如shell脚本,也可以监控项目构建健康状态。使用Jenkins的话不管是运维、开发、测试都可以把push完的代码一键发布。
搭建步骤其实很简单,先去官网(https://jenkins.io/)下载一个war包。然后上传linux服务器,或者直接用wget命令下载。下载好后可以直接用java -jar jenkins.war 运行。如果安装了tomcat等web服务器的话就放入对应的路径运行服务器即可。tomcat在webapps下。不推荐使用tomcat,因为war包里本身就包括了一个内置的服务器。如果想后台运行可以用nohup命令。nohup java -jar jenkins.war & ,指定端口加上 --httpPort=xxxx 。
下载好打开ip:端口就可以。第一次登录需要一个密码,随后可以创建一个管理员账号。密码在下图位置:
那个随机的数字+字母就是初始化密码了。账号默认admin。
Jenkins主界面:
因为我服务器上已经安装好了jdk,git,maven等工具,所以这里就不演示怎么安装了,相信大家都会,今天只说Jenkins。
然后在左上角点开系统管理--->全局工具配置,拉到最底下配置一个maven,点击新增,取消勾选自动安装,填上自己的maven路径然后保存就可以!
回到首页,我们点击左上角新建任务,输入一个任务名称,选择自由风格的项目就可以。在源码管理下,选择git地址和分支名称。
如果是svn也是同样的道理。构建这里选择刚才添加的maven插件。我这里是直接打包并跳过测试了。目标就是你的maven命令。
其实到这里基本的步骤就完成了,首先已经克隆了项目,然后maven也打包了,去Jenkins的workspace下就可以看见打包过后的jar包了。
这样最简单的办法就是直接 java -jar 运行jar即可(我这里是springboot项目),如果不是的话复制到tomcat目录下。但是都说了是自动化一键构建,所以再通过ssh工具操作linux服务器启动的话就有点low了。可以在项目构建完成后让Jenkins帮我们执行shell脚本文件,这样就代替了手动操作。也是很方便的。先提前写好一个脚本。这段脚本还是很好理解的,就算没学过shell也可以看得懂,但是linux基本命令是要会的。别忘了给脚本添加可执行权限:chmod +x restart.sh
#!/bin/bash echo "restart project..." #$1 项目名称 $2 jar名称 export project_path=/root/.jenkins/workspace/$1 ps -ef|grep java|grep $2|awk '{print $2}' | xargs kill -9 cd ${project_path} cd target nohup java -jar $2 > /root/.jenkins/workspace/$1/nohub.out 2>&1 & echo "SUCCESS!"
在这里添加shell脚本命令。我直接把脚本放在workspace里面了。如果只有一个项目的话也可以写死项目名和jar名。我这里把他当作参数传进去了,那么这个脚本就可以通用别的项目。当然这里也可以不配git和maven,然后全程使用shell脚本来操作,不过对脚本的要求比较高,需要专门学习下。这里就不贴脚本了。(我们公司就是全脚本运行,当然不是我写的。啊哈哈!!)
BUILD_ID=DONTKILLME cd /root/.jenkins/workspace ./restart.sh spring-boot-template spring-boot-template-0.0.1-SNAPSHOT.jar
完成后可在控制台看见日志文件,方便找错。
linux的nohub日志文件:目录位置在上面的脚本文件里,可以进行修改,方便自己查看。
然后这篇博客就到这里了。(本人才疏学浅,如有错误纯属正常,欢迎指出!)