1.环境
服务器环境:Centos7
Jenkins版本:2.263.1
2.搭建Jenkins环境
2.1. https://www.jenkins.io / Download
2.2.将下载的war包,保存到服务器上
2.3.启动Jenkins 【java -jar jenkins.war】
看到如上图内容即表示启动成功。如果端口号被占用可启动时设置其他端口号【java -jar jenkins.war --ajp13Port=-1 --httpPort=8099】
2.4.登录Jenkins 管理员密码处填写上图红框密码
安装推荐插件
等待安装插件完成
创建管理员
保存并完成
开始使用Jenkins
2.5.下载maven/svn插件 【Manage Jenkins / Manage Plugins】
安装maven插件
安装svn插件
2.6.设置JDK / Maven 【Manage Jenkins / Global Tool Configuration】
设置maven的settings.xml文件
上传settings.xml文件到服务器
设置JDK
填写Oracle的账号密码 【Please enter your username/password】
设置maven
以上设置内容设置好后 【应用 / 保存】
3.发布项目 【新建Item】
填写项目名称 / 选择【构建一个maven项目】 / 确定
填写项目描述
填写svn代码源
添加svn的用户名密码 【添加】
选中添加的用户密码
以下项目不用修改
■构建触发器
■构建环境
■build 的 Pre Steps
填写build内容
构建命令:【clean install -Dmaven.test.skip=true】此处不建议设置配置文件,在application.properties中指定配置文件即可。
构筑后shell内容
#!/bin/bash
BUILD_ID=DONTKILLME
cd /opt/xxxx/repository/infosky/alp-client/1.0
echo '进入目录'
ps -ef|grep alp-client.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
echo '杀死原进程'
rm -rf alp-client.jar
mv -f alp-client-1.0.jar alp-client.jar
echo '修改了jar名字'
nohup java -jar alp-client.jar >/dev/null 2>&1 &
echo '执行完了构建'
以下内容不用设置
■构建设置
■构建后操作
应用 / 保存
到此任务设置完成。
4.执行任务
执行成功
查看日志
==================================================================
以下内容为Jenkins中向多个远程服务器Linux发布项目
1.远程服务器Linux需要开启免密登录。
2.Jenkins需要安装插件Publish over SSH
3.配置远程Linux服务器可使用免密生产的[id_rsa],也可以使用用户+密码。
4.Dashboard->系统管理->系统配置
A.免密id_rsa配置
B.用户密码配置
5.项目发布配置
==================================================================
以下内容说一下jekins打包的文件放在什么地方及我们在【构建环境】-【Sendfiles or execute commands over SSH after the build runs】-【SSH Server】-【Transfer Set】-【Source files】中填的路径及jar文件名
jekins搭建完成后会自动创建了文件夹[/root/.jenkins]
如上图我们经过jekins打包的项目会在/root/.jenkins/workspace下生成对应内容。workspace下的文件夹及为我们在jekins中创建项目名称的文件夹。在此文件夹下的target目录下存放了最终打成的jar包。所以我们在构建环境】-【Sendfiles or execute commands over SSH after the build runs】-【SSH Server】-【Transfer Set】-【Source files】中写的是target/xxxx.jar
如果当我们项目打成的包不是简单的只有1个包,而是生成相互依赖的多个包时,就不能简单的写target/xxxx.jar。此时我们可以到workspace下去检查一下生成包的具体路径,然后将这个路径写入【Source files】中。如下图 【Source files】:visual-umps/visual-upms-biz/target
【Remove prefix】中填的内容为文件发送到指定Liunx服务器后,删除掉【Source files】中文件路径的部分。简单说就是如果这里不填的话,文件发送到服务器时会带着文件夹路径。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
jenkins发布vue项目(将打包后的vue内容发布到nginx中配置的目录中)
1.新建item(选择Freestyle project)
2.设置代码源
3.配置构建环境
【Source files】jenkins部署机器上的默认路径为[/root/.jenkins/workspace/▲▲▲货物监管系统regulatory-ui],此处只需填默认路径后路径即可。
【Remove prefix】复制到远程机器后,删除掉前面的路径
【Remote directory】/:表示发布服务器的默认路径
【Exec command】将文件发送到远程测试服务器后,执行的shell命令。
cd /opt/visualjar
rm -rf dist
mkdir dist
mv ./dist.tar.gz ./dist/
cd dist
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz
4.构建时执行的命令
cd ${WORKSPACE}
cnpm install --registry=https://registry.npm.taobao.org
#npm run move
npm run build
cd dist
rm -rf dist.tar.gz #删除上次打包生成的压缩文件
tar -zcvf dist.tar.gz * #吧生成的项目打包,方便传输到远程服务器
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
多jar包发布例子
visual-register/target/visual-register.jar,visual-upms/visual-upms-biz/target/visual-upms-biz.jar,visual-core/visual-core-biz/target/visual-core-biz.jar,visual-auth/target/visual-auth.jar,visual-gateway/target/visual-gateway.jar
cd /opt/visualjar
#发布nacos
ps -ef|grep visual-register-1.0.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf visual-register-1.0.jar
mv -f ./visual-register/target/visual-register.jar ./visual-register-1.0.jar
rm -rf visual-register
nohup java -jar visual-register-1.0.jar >/dev/null 2>&1 &
sleep 30s
#发布服务upms
ps -ef|grep visual-upms-biz-1.0.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf visual-upms-biz-1.0.jar
mv -f ./visual-upms/visual-upms-biz/target/visual-upms-biz.jar ./visual-upms-biz-1.0.jar
rm -rf visual-upms
nohup java -jar visual-upms-biz-1.0.jar >/dev/null 2>&1 &
sleep 30s
#发布服务core
ps -ef|grep visual-core-biz-1.0.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf visual-core-biz-1.0.jar
mv -f ./visual-core/visual-core-biz/target/visual-core-biz.jar ./visual-core-biz-1.0.jar
rm -rf visual-core
nohup java -jar visual-core-biz-1.0.jar >/dev/null 2>&1 &
sleep 30s
#发布auth
ps -ef|grep visual-auth-1.0.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf visual-auth-1.0.jar
mv -f ./visual-auth/target/visual-auth.jar ./visual-auth-1.0.jar
rm -rf visual-auth
nohup java -jar visual-auth-1.0.jar >/dev/null 2>&1 &
sleep 30s
#发布gateway
ps -ef|grep visual-gateway-1.0.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf visual-gateway-1.0.jar
mv -f ./visual-gateway/target/visual-gateway.jar ./visual-gateway-1.0.jar
rm -rf visual-gateway
nohup java -jar visual-gateway-1.0.jar >/dev/null 2>&1 &
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
vue前端项目发布例子
cd /opt/visualjar
rm -rf dist
mkdir dist
mv ./dist.tar.gz ./dist/
cd dist
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz
cd ${WORKSPACE}
cnpm install --registry=https://registry.npm.taobao.org
#npm run move
npm run build
cd dist
rm -rf dist.tar.gz #删除上次打包生成的压缩文件
tar -zcvf dist.tar.gz * #吧生成的项目打包,方便传输到远程服务器
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
springboot发布例子
cd /opt/alpjar
ps -ef|grep alp-awb-provider.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
rm -rf alp-awb-provider.jar
mv -f alp-awb-provider-1.0.jar alp-awb-provider.jar
nohup java -jar alp-awb-provider.jar --spring.profiles.active=tst >/dev/null 2>&1 &
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■Jekins中配置多版本nodejs(VUE)
■■■1.linux中安装nvm(nodejs版本管理工具)
■■■2.通过nvm安装多版本nodejs (这里安装了12.14.1和16.10.0版本的nodejs)
■■■3.jenkins中配置NodeJS(安装目录在nvm下)
Dashboard---Manage Jenkins---Global Tool Configuration---NodeJS
■■■4.项目中指定使用的nodejs