Jenkins

吴书松
吴书松
发布于 2025-05-21 / 10 阅读
0

Jenkins

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、注意

  1. jenkins默认会在构建完成后,杀掉构建过程中由shell命令触发的衍生进程

  2. 所以通过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