Jenkins安装部署及发布Maven项目

一、安装Jenkins

Jenkins可以通过Docker和手动安装两种方式。因为存在在Docker里运行的项目与Docker同生命周期、需要暴露项目接口和关联项目在宿主机文件等问题,所以不建议Docker安装方式。如果是管理远程发布项目,可以使用Docker安装方式。

现在Jenkins要求至少JDK11,建议直接按最新版本使用JDK17为好,要不一大堆安装插件和运行问题。

1.1 通过Docker安装Jenkins,以下为docker-compose.yml

前提是已经安装好了Maven,或者不安装之后在Jenkins配置中使用自动安装。如果没有事先安装好JDK17, 通过Docker安装Jenkins时默认在容器内安装了。

version : '3.8'
services:
  dlmz-jenkins:
    container_name: dlmz-jenkins
    image: jenkins/jenkins:lts
    privileged: true    #使用该参数,container内的root拥有真正的root权限。
    restart: always    #在容器退出时总是重启容器
    user: root    #指定用户
    ports:
      - "8080:8080"
      - "8081:50000"
      - “8888:8888”    #jenkins的项目构建端口映射
    volumes:
      - /etc/localtime:/etc/localtime:ro    #容器时区与宿主机保持一致
      - ./jenkins/jenkins_home:/var/jenkins_home #jenkins工作空间
      - /usr/local/apache-maven-3.8.1:/usr/share/maven #maven安装目录
      - /usr/local/src:/usr/local/src   #maven项目源码目录
    environment:
      TZ: Asia/Shanghai    #指定容器运行所属时区

1.2 通过手动安装Jenkins

前提是已经安装好了Maven,或者不安装之后在Jenkins配置中使用自动安装。事先安装好JDK17
Jenkins官网下载地址:https://www.jenkins.io/download/

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

sudo yum install fontconfig java-17-openjdk
sudo yum install jenkins

sudo systemctl start jenkins

安装之后,安装目录/var/lib/jenkins

二、设置Jenkins

2.1 访问http://ip:8080, 选择推荐安装,再设置管理员信息,再保存访问地址就OK了。

2.2 在管理->插件中选择安装Maven Integration plugin、Publish Over SSH、NodeJS Plugin(按需)

2.3 在管理->插件中设置Maven全局信息


2.4在管理->插件中设置Nodejs全局信息(按需)

2.5在管理->系统中设置SSH信息


三、部署项目

3.1 后端maven项目在当前服务器部署






clean package -Dmaven.test.skip=true
#删除之前的jar包
rm -rf /usr/local/src/dlmz-admin/dlmz-admin.jar
#把jar包移动到指定目录,这里要注意:默认所处位置是在workspace下的当前项目文件夹下,即在xxx项目下
cp -rf /var/lib/jenkins/workspace/dlmz-admin-local/dlmz-admin/target/dlmz-admin.jar /usr/local/src/dlmz-admin/
#进入指定目录
cd /usr/local/src/dlmz-admin/
#阻止jenkins杀死项目进程
export BUILD_ID=dontKillMe
#执行启动脚本(没有脚本可以执行启动命令:nohup java -jar xxx.jar &)
# ./startup.sh
nohup java -jar dlmz-admin.jar &

3.2 后端maven项目在远程服务器部署






cd /usr/local/src/dlmz-admin
nohup java -jar dlmz-admin.jar &

3.3 后端maven项目Pipeline方式部署



node {
    stage('Preparation') {
        // Get some code from a GitHub repository
        git branch: 'jenkins', credentialsId: '17b9****-****-41f3-bc14-977a****def1', url: 'https://gitee.com/xxx/xxx-project.git'
    }
    stage('Build') {
        // Run the maven build
        sh '/usr/local/apache-maven-3.8.1/bin/mvn -Dmaven.test.failure.ignore clean package'
    }
    stage('PostStep') {
        sh '''
        #删除之前的jar包
        rm -rf /usr/local/src/dlmz-admin/dlmz-admin.jar
        #把jar包移动到指定目录,这里要注意:默认所处位置是在workspace下的当前项目文件夹下,即在xxx项目下
        cp -rf /var/lib/jenkins/workspace/dlmz-admin-pipeline/dlmz-admin/target/dlmz-admin.jar /usr/local/src/dlmz-admin/
        #进入指定目录
        cd /usr/local/src/dlmz-admin/
        export JENKINS_NODE_COOKIE=dontKillMe
        #执行启动脚本(没有脚本可以执行启动命令:nohup java -jar xxx.jar &)
        # ./startup.sh
        nohup java -jar dlmz-admin.jar>nohup.log 2>&1 &
        '''
    }
    stage('Result') {
        echo 'Success'
    }
}

3.4 部署VUE前端项目




# 参考
cd ./dlmz-ui-admin
npm install 
rm -rf ./dist/*
npm run build:prod
echo '打包完毕'

这里是拉取最新代码和打包,具体再移到实际项目目录和nginx配置访问,可以根据实际项目情况配置。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容