【Linux】安装Jenkins并且打包发布springboot项目
概要
目前Java最流行的CI/CD工具是Jenkins,问了几个前同事的公司,有很多都在使用它,而我还在本地打包手动上传,所以准备也搞一下。
整体架构流程
服务器系统:Alibaba Cloud Linux 3.2 64位
运维面板:宝塔 v11.7
是否基于Docker: 是
Jenkins版本: 2.492.3
代码git库:gitee
打包项目:springboot
技术细节
安装好宝塔面板后,直接在右侧主栏中选择并安装Docker,不要再去软件商店里找了。
安装好Docker后,不要在宝塔面板中选择安装Jenkins,因为宝塔自带的版本相对比较老…
这里我们推荐使用命令安装指定版本,因为随后需要安装maven与git的插件,为了选择最大兼容性,我们选择了2.492.3这个版本。
选择宝塔的终端,开始安装jenkins:
docker run -d \
--name jenkins \
--privileged \
-p 14808:8080 \
-v /www/docker/jenkins:/var/jenkins_home \
-u root \
jenkins/jenkins:2.492.3-lts-jdk17
安装好后,可以运行一下docker进程命令看一下效果:
docker ps

如果想要进入这台docker容器:
docker exec -it jenkins /bin/bash
打开浏览器访问:http://ip:14808,记得打开防火墙,端口号可以映射其他的,别冲突就好。
初次访问,需要填写原始密码:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
进入后选择自定义安装插件,如果之前安装过其他版本,并且有很多残留插件,想要一键清除掉之前的插件,可以这样做:
docker stop jenkins
# 删除所有插件文件
rm -rf /www/docker/jenkins/plugins/*
# 删除插件缓存,避免残留
rm -rf /www/docker/jenkins/cache
rm -rf /www/docker/jenkins/plugins/*.bak
rm -rf /www/docker/jenkins/plugins/*.jpi
docker start jenkins
进入主界面前需要配一个管理员账号,
第一步:安装插件: 中文插件,maven,git.
进入主界面点击系统管控,管理插件,可用插件,搜索chinese,安装中文插件
安装后重启,重启后可能就挂了,可以docker ps查看进程是否还在,不在了就docker start jenkins手动起来。
然后再安装Maven Integration与git插件。

Jenkins之所以选择2.492.3这个版本,就是因为兼容插件,如果选择更早的版本,这里安装的时候,就会有很多的失败,踩过坑才知道的。
第二步:配置 JDK 1.8 + Maven
为容器强制安装JDK8
# 1. 进入容器
docker exec -it jenkins bash
# 2. 安装 apt 工具
apt update && apt install -y wget ca-certificates
# 3. 下载 JDK8(Adoptium 官方,绝对可用)
wget https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u442-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u442b06.tar.gz -O jdk8.tar.gz
# 4. 解压安装
mkdir -p /usr/lib/jvm/
tar -zxvf jdk8.tar.gz -C /usr/lib/jvm/
mv /usr/lib/jvm/jdk8u442-b06 /usr/lib/jvm/java-8-openjdk-amd64
进入 系统管理 → 全局工具配置
新增 JDK:
名称:jdk8
JAVA_HOME:/usr/lib/jvm/java-8-openjdk-amd64
点 新增 Maven
名称:maven39
勾上自动安装
版本选最新的 3.9.x
点 保存
第三步:配置 Gitee 账号密码
左侧 凭据 → 系统 → 全局凭据
左上角 添加凭据
类型:用户名密码
用户名:你的 Gitee 账号
密码:你的 Gitee 密码
ID 可以空,描述写:gitee
点 创建
第四步:创建构建任务(关键)
- 新建任务
任务名称:随便填
选择:构建一个自由风格的 项目
确定 - 配置源码管理
选 Git
Repository URL:填你的 Gitee https 地址
Credentials:选你刚才添加的 gitee 账号
提前复制一个jar包到容器root目录:
docker cp /root/aspose-words-16.8.0-jdk16-16.8.0.jar jenkins:/root/
在Build阶段执行 shell:
# 强制使用 JDK8
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
mkdir -p /var/jenkins_home/workspace/free-mall-release/yshop-mall/yshop-mall-biz/libs/
# 把你上传的 jar 移动到正确位置(把 /root/ 换成你 jar 所在的目录)
cp /root/aspose-words-16.8.0-jdk16-16.8.0.jar /var/jenkins_home/workspace/free-mall-release/yshop-mall/yshop-mall-biz/libs/
# 使用 Jenkins 里配置的 maven 绝对路径(关键!)
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven39/bin/mvn clean package -Prelease
# 拷贝到java服务器上
sshpass -p 'password' scp -o StrictHostKeyChecking=no /var/jenkins_home/workspace/free-mall-release/yshop-mall/yshop-mall-biz/target/*.jar root@172.23.85.85:/root/
安装sshpass:
docker exec -it jenkins bash
apt install -y sshpass
这里贴的mvn目录来着Jenkins的maven插件全路径。
这里的-Prelease指的是springboot项目中的profiles使用release。
点最下面 保存
为了防止拉取gitee错误,加入dns解析优化:
docker exec -it jenkins echo "nameserver 8.8.8.8" > /etc/resolv.conf
docker exec -it jenkins echo "nameserver 114.114.114.114" >> /etc/resolv.conf
第五步:立即构建,看是否打包成功
构建中,点击控制台输出,看执行日志:

看到success就代表成功了~
更多推荐

所有评论(0)