1、安装
1、win安装
1、安装包安装
下载jenkins安装包
1、阿里云盘下载
2、官网下载:https://get.jenkins.io/war-stable/
直接根据步骤安装即可
安装好之后,手动启动服务

2、war包启动
1、阿里云盘下载war包
2、阿里镜像下载war包:https://mirrors.aliyun.com/jenkins/?spm=a2c6h.25603864.0.0.3db44acc1UJV64
3、官网下载:https://get.jenkins.io/war-stable/2.235.5/


注意:
1、war包部署,对jdk环境有要求:2022年11月:从2022年 6 月 28 日发布的 Jenkins 2.357 和2022年9 月发布的 LTS 版本开始,Jenkins 需要 Java 11 才能使用
2、那么Jenkins版本需要是2.357版本之前
运行
java -Dfile.encoding=UTF-8 -jar jenkins.war --httpPort=8080
指定jdk运行
"C:\Program Files\Java\jdk-17\bin\java" -Dfile.encoding=UTF-8 -jar jenkins.war --httpPort=8080


2、linux系统安装
war包启动
nohup java -jar -Dfile.encoding=UTF-8 jenkins.war > /opt/jenkins/logs/run.log 2>&1 &
同win安装/war包启动
2、使用
1、进入配置密码
将启动日志中的密钥串复制到输入框即可


2、安装插件
此处建议安装推荐的插件,安装时间会比较长

3、配置用户

4、配置插件
必装插件:
Maven Integration
Git
Publish over SSH


5、全局配置
1、maven setting
路径:Dashboard/Manage Jenkins/Tools

2、JDK
路径:Dashboard/Manage Jenkins/Tools

3、Git
路径:Dashboard/Manage Jenkins/Tools

4、maven
路径:Dashboard/Manage Jenkins/Tools

5、配置服务器
路径:Dashboard/Manage Jenkins/System

6、新建项目,部署jar


1、源码管理

1、添加密码

2、添加构建步骤

3、添加构建后步骤
1、上传远程服务器


如果连不上服务器,可以单独配置账号密码

2、注意
jenkins默认会在构建完成后,杀掉构建过程中由shell命令触发的衍生进程
所以通过sh脚本启动的程序,在jenkins运行结束只会,会关闭服务
解决方案
1、修改sh脚本 添加:source /etc/profile
#! /bin/bash
source /etc/profile
nohup java -jar demo-0.0.1-SNAPSHOT.jar >/dev/null &
2、修改BUILD_ID
#! /bin/bash
#值随意
BUILD_ID="jenkins not kill me"
nohup java -jar demo-0.0.1-SNAPSHOT.jar >/dev/null &
4、部署

1、查看输出日志



7、启动脚本
#!/bin/bash
source /etc/profile
#值随意
#BUILD_ID="jenkins not kill me"
# 定义变量
APP_NAME="my-gateway"
JAR_FILE="/usr/local/java/my/gateway/my-cloud-gateway.jar"
PID_FILE="app.pid"
# 启动方法
start() {
echo "Starting $APP_NAME ..."
nohup java -Dfile.encoding=utf-8 -jar -Xms1024m -Xmx1024m $JAR_FILE --server.port=23500 --spring.profiles.active=dev > /dev/null 2>&1 &
echo $! > $PID_FILE
echo "$APP_NAME started successfully."
}
# 重启方法
restart() {
stop
start
}
# 停止方法
stop() {
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE)
echo "Stopping $APP_NAME ..."
kill $PID
rm $PID_FILE
echo "$APP_NAME stopped."
else
echo "$APP_NAME is not running."
fi
}
# 根据命令行参数执行相应操作
case "$1" in
start)
start
;;
restart)
restart
;;
stop)
stop
;;
*)
echo "Usage: $0 {start|restart|stop}"
exit 1
esac