自动化部署详细教程:Jenkins+Git+Springboot+Maven+Jdk11
一、准备:
CentOS Linux release 7.6.1810,
jdk-11.0.1_linux-x64_bin,
Apache Maven 3.1.1 ,
Git version 1.8.3.1,
jenkins war包,
二、环境配置以及安装jenkins
1)将下载好的jenkins的war包安装在/usr/local/jenkins下
cd /usr/local/
mkdir jenkins
cd jenkins wget http://ftp-nyc.osuosl.org/pub/jenkins/war/2.154/jenkins.war
(此处注意,本次示范使用jdk11版本,需要在下载几个其他jar包,)
wget http://central.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar
wget http://central.maven.org/maven2/com/sun/xml/bind/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar
wget http://central.maven.org/maven2/com/sun/xml/bind/jaxb-impl/2.3.0.1/jaxb-impl-2.3.0.1.jar
wget https://github.com/javaee/activation/releases/download/JAF-1_2_0/javax.activation.jar
2)修改jar包的名称:
mv jaxb-api-2.3.0.jar jaxb-api.jar
mv jaxb-core-2.3.0.1.jar jaxb-core.jar
mv jaxb-impl-2.3.0.1.jar jaxb-impl.jar
3)这时候/usr/local/jenkins目录下有五个压缩包:
javax.activation.jar jaxb-api.jar jaxb-core.jar jaxb-impl.jar jenkins.war
4)后台启动jenkins,并输出日志
nohup java -p jaxb-api.jar:javax.activation.jar --add-modules java.xml.bind,java.activation -cp jaxb-core.jar:jaxb-impl.jar -jar jenkins.war --enable-future-java >./nohup.log 2>&1 &
5)这时候能成功访问jenkins页面代表正确 http://localhost:8080
查询初始化密码,将结果粘贴即可
cat /var/lib/jenkins/secrets/initialAdminPassword
6)创建用户
输入完初始密码把安装插件的窗口关掉,直接进入jenkins,设置自己的用户名密码
系统管理—>管理用户 —> create User
输入账号密码保存,退出admin,重新登录自己的账号
三、jenkins插件下载
1)设置root url
这个可设置可不设置,点击系统管理,如果没设置rooturl的时候可能会出现
Jenkins root URL is empty but is required for the proper operation of many Jenkins features like email notifications, PR status update, and environment variables such as BUILD_URL.的提示
可以进入系统设置里面设置Jenkins URL
官方解释:
此项是可选的,指定安装Jenkins的HTTP地址,例如http://yourhost.yourdomain/jenkins/. 这个值用来在邮件中生产Jenkins链接.
此项是有必要的,因为Jenkins无法探测到自己的URL地址.
也可以直接忽略
2)更新站点信息
系统管理—>插件管理
站点信息从:https://updates.jenkins.io/update-center.json 改为如下地址【三选一即可】
http://mirror.xmission.com/jenkins/updates/update-center.json # 推荐
http://mirrors.shu.edu.cn/jenkins/updates/current/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
更改完毕后,最好重启Jenkins。
3)下载插件,这里整理一下几个(Folders ,OWASP Markup Formatter ,Build Timeout,Maven Integration ,publish over ssh ,SSH,Git Parameter)
示范如下:
安装之后重新启动jenkins新建项目的时候才会有maven项目
四、jenkins环境配置
1)jdk配置 系统管理-》全局工具配置-》ADD JDK
2)maven 系统管理-》全局工具配置-》ADD MAVEN
3)git 系统管理-》全局工具配置-》git
4)配置服务器 系统管理-》系统设置-》Publish over SSH-》SSH Servers-》add
配置好后点击test configuration 现实success 表示配置成功
四、项目配置部署
1)首页点击新建(new 任务):输入项目名称
2)丢弃旧的构建(避免长期占用磁盘空间)
3)源代码管理
特别注意:点击add后需要配置git相关,如下
本人使用git仓库是码云,登陆码云页面登陆,设置 私人令牌,生成私人令牌后,复制
4)Build配置 clean install -Dmaven.test.skip=true -Ptest
5)构建配置
说明:
Source files配置:target/*.jar jar包名,多个项目都在同一目录建议用项目.jar
Remove prefix:target/
Remote directory:/usr/local/jenkins// 代码应用服务器的目录地址,
Exec command:/usr/local/jenkins/startup.sh 应用服务器对应的脚本。
在/usr/local/jenkins下创建一个startup.sh脚本文件,内容如下
DATE=$(date +%Y%m%d)
export JAVA_HOME JRE_HOME PATH CLASSPATH
JAVA_HOME=/usr/local/jdk-11.0.1
JRE_HOME=\$JAVA_HOME/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
DIR=/root/.jenkins/workspace/school/target/ItMonkeyFamily-0.0.1-SNAPSHOT.jar
JARFILE=ItMonkeyFamily-0.0.1-SNAPSHOT.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /usr/local/jenkins//$JARFILE .
java -jar $JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
并将该脚本权限改为777 (使用 chmod 命令)
好了,现在可以通过jenkins 构建代码并重新启动了,测试。
有可能出现,构建成功却未执行脚本情况,有可能是脚本内容与你的目录不一致
,解决如下:
查看输出日志
绿色位置就是打包构建后的问价地址,将脚本此处进行修改
DIR=/root/.jenkins/workspace/school/target/ItMonkeyFamily-0.0.1-SNAPSHOT.jar
JARFILE=ItMonkeyFamily-0.0.1-SNAPSHOT.jar
另外,如果是项目和jenkins在同一服务器上,为了提高效率可以使用内网ip,这样子效率会提升很多的哦!!
(开源精神,辛苦整理,请给好评!谢谢)