2. jenkins发布java项目

news2025/1/11 23:34:50

jenkins发布java项目

  • 一、环境描述
  • 二、部署tomcat业务服务器
  • 三、部署git服务器,上传测试代码
    • 1、部署git服务器
    • 2、上传测试代码
  • 四、jenkins对接组件
    • 1、安装必要的插件
    • 2、对接git客户端
    • 3、对接maven工具
    • 4、配置maven需要的jdk
    • 5、配置gitlab服务器的连接
    • 6、在jenkins上添加tomcat业务服务器地址
  • 五、创建发布java项目的任务
    • 1、创建maven项目
    • 2、选择git服务器的连接地址
    • 3、选定项目的源码仓库
    • 4、设置构建触发器
    • 5、指定pom.xml依赖文件位置
    • 6、设置构建后的操作
    • 7、测试发布
  • 六、测试项目更新
    • 1、手动触发更新
    • 2、通过webhook自动更新
      • 2.1 修改项目的构建触发器
      • 2.2 在git服务器上配置webhook地址
  • 七、Jenkins file
    • 1、介绍
    • 2、pipeline流水线语法结构
    • 3、编写pipeline发布java项目

一、环境描述

192.168.140.10 jenkins.linux.com
192.168.140.11 git服务器,存放项目源码
192.168.140.12 tomcat业务服务器

二、部署tomcat业务服务器

在这里插入图片描述

三、部署git服务器,上传测试代码

1、部署git服务器

[root@gitlab ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.140.11	gitlab.linux.com
[root@gitlab ~]# yum install -y gitlab-ce-10.1.5-ce.0.el7.x86_64.rpm

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://gitlab.linux.com'

[root@gitlab ~]# gitlab-ctl reconfigure 

在这里插入图片描述
在这里插入图片描述

2、上传测试代码

$ git init
$ git add ./*
$ git commit -m "Initial commit"

$ git remote add origin <自己的仓库地址>
$ git push -u origin master

在这里插入图片描述

四、jenkins对接组件

1、安装必要的插件

1、git
2、gitlab
3、maven intergration
4、pushlish over ssh

2、对接git客户端

[root@jenkins ~]# yum install -y git 

在这里插入图片描述

3、对接maven工具

[root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins ~]# mv /usr/local/apache-maven-3.6.3/ /usr/local/maven36

[root@jenkins ~]# vim /etc/profile
export MAVEN_HOME=/usr/local/maven36
export PATH=$PATH:$MAVEN_HOME/bin
[root@jenkins ~]# source /etc/profile

[root@jenkins ~]# mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven36
Java version: 17.0.10, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-17-oracle-x64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

在这里插入图片描述

4、配置maven需要的jdk

在这里插入图片描述

5、配置gitlab服务器的连接

在这里插入图片描述在这里插入图片描述在这里插入图片描述

6、在jenkins上添加tomcat业务服务器地址

[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id root@192.168.140.12

在这里插入图片描述在这里插入图片描述

五、创建发布java项目的任务

1、创建maven项目

在这里插入图片描述

2、选择git服务器的连接地址

在这里插入图片描述

3、选定项目的源码仓库

在这里插入图片描述

4、设置构建触发器

设置拉取代码、编译项目的条件、时间
在这里插入图片描述

5、指定pom.xml依赖文件位置

在这里插入图片描述

6、设置构建后的操作

发布的项目文件路径、业务服务器执行的脚本
在这里插入图片描述

7、测试发布

在这里插入图片描述在这里插入图片描述在这里插入图片描述

六、测试项目更新

1、手动触发更新

D:\test\src\main\webapp

$ git add ./*
$ git commit -m "update01"
$ git push -u origin master

项目代码push完毕后,在jenkins手动构建

在这里插入图片描述

2、通过webhook自动更新

2.1 修改项目的构建触发器

在这里插入图片描述

2.2 在git服务器上配置webhook地址

在这里插入图片描述在这里插入图片描述

七、Jenkins file

https://www.jenkins.io/doc/book/pipeline/syntax/

1、介绍

Jenkins file, 也称为pipeline 流水线
依赖于pipeline插件
灵活

2、pipeline流水线语法结构

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                //
            }
        }
        stage('Test') {
            steps {
                //
            }
        }
        stage('Deploy') {
            steps {
                //
            }
        }
    }
}

3、编写pipeline发布java项目

配置jenkins用户与业务服务器间的ssh免密

[root@jenkins ~]# su - jenkins
Last login: Sat Jun 29 16:25:17 CST 2024 on pts/0

-bash-4.2$ ssh-keygen -t rsa 
-bash-4.2$ ssh-copy-id root@192.168.140.12

pipeline {
    agent any
    
    stages {
        stage('clone') {
            steps {
                checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[url: 'http://gitlab.linux.com/root/test.git']])
            }
        }
        stage('build') {
            steps {
                sh "cd /var/lib/jenkins/workspace/helloProject"
                sh "/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven/bin/mvn package"
            }
        }
        stage('deploy') {
            steps {
                sh "scp target/*.war root@192.168.140.12:/usr/local/tomcat90/webapps/hello.war"
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1892715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VBA 操作注册表

1. SaveSetting 1-1. 语法 SaveSetting(AppName As String, Section As String, Key As String, Setting As String) 1-2. 函数说明 在Windows注册表中创建或保存一个应用程序项。将值写入注册表中的HKEY_CURRENT_USER\Software\VBand VBA Program Settings键的子键 1-3. 参…

#BI建模与数仓建模有什么区别?指标体系由谁来搭建?

问题1&#xff1a; 指标体系是我们数仓来搭建还是分析师来做&#xff0c;如何去推动&#xff1f; 问题2&#xff1a;BI建模与数仓建模有什么区别&#xff1f; 指标体系要想做好&#xff0c;其实是分两块内容的&#xff0c;一块是顶层设计阶段&#xff0c;业务指标体系的搭建&am…

github 设置中文,亲测有效

点进去 安装 选上面第二个&#xff0c;不行再选第一个 GitHub - maboloshi/github-chinese: GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese)

如何注册一个自己的公众号?详细指南

博主介绍&#xff1a;全网粉丝10w、CSDN合伙人、华为云特邀云享专家&#xff0c;阿里云专家博主、星级博主&#xff0c;51cto明日之星&#xff0c;热爱技术和分享、专注于Java技术领域 &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅…

程序员鱼皮的保姆级写简历指南第三弹,简历常见问题和建议汇总

大家好&#xff0c;我是程序员鱼皮。做知识分享这些年来&#xff0c;我看过太多简历、也帮忙修改过很多的简历&#xff0c;发现很多同学是完全不会写简历的、会犯很多常见的问题&#xff0c;不能把自己的优势充分展示出来&#xff0c;导致错失了很多面试机会&#xff0c;实在是…

香橙派AIpro测评:快速部署SLAM算法,性能与体验的完美融合

一、引言 最近收到了一块”香橙派AIpro“的开发板&#xff0c;这款开发板是香橙派联合华为精心打造的&#xff0c;他们的宣传sologen是&#xff1a;“为AI而生”。这引起了我的好奇心&#xff0c;想知道其是否可以胜任无人机的实时建图和航迹规划工作。通过实操博主成功实现了…

SprongBoot3整合Knife4j实现在线接口文档

大家好&#xff0c;我是晓凡。 写在前面 在上一篇文章&#xff0c;我们详细介绍了SpringBoot3 怎么整合SpringDoc实现在线接口文档。但是&#xff0c;有不少小伙伴 都觉得接口界面太丑了。有没有什么更美观一点的UI界面呢&#xff1f; 当然是有的了&#xff0c;毕竟这是一个…

MySQL 进阶(一)【存储引擎】

1、存储引擎 1.1、MySQL 体系结构 自上而下可以分为 连接层 接受客户端的连接&#xff0c;完成连接的处理、认证授权、安全方案和最大连接数等服务层 绝大部分的核心功能都是在服务层完成的&#xff0c;比如SQL 接口&#xff08;DDL、DML、视图、触发器、存储过程&#xff09…

【IDEA】什么maven,如何进行文件导入,并打包

maven介绍 maven是一个Java世界中&#xff0c;构建工具。 核心功能&#xff1a; 1&#xff0c;管理依赖&#xff1a; 管理文件运行的顺序逻辑依赖关系。对配置文件&#xff0c;进行构建和编译。其也是在调用jdk&#xff0c;来进行编译打包工作。 2&#xff0c;打包 通过使用…

【Python基础篇】你知道python的数据类型都有哪些吗?

文章目录 0. 前言1. 基本数据类型1.1 数值类型&#xff08;int、float&#xff09;1.1.1 整型&#xff08;int&#xff09;1.1.2 浮点型&#xff08;float&#xff09; 1.2 布尔类型&#xff08;bool&#xff09;1.3 字符串&#xff08;str&#xff09;1.4 字节串&#xff08;b…

后端之路——文件本地上传

一、基础原理 文件上传是一个很基础的知识点&#xff0c;尤其是本地上传&#xff0c;在现实开发基本都是云上传&#xff0c;但是作为一个基础要简单了解一下 首先前端我就不多讲解了&#xff0c;网页开发里用<form>表单可以上传文件&#xff0c;只需要加上这三属性&…

Yolov8模型调参大全:超详细解读每一个参数

目录 1. 代码获取方式 2. YOLOv8网络配置 3. Yolov8使用 3.1. CLI 3.2. Python 4.default.yaml文件解读 1. 代码获取方式 Yolov8项目地址&#xff1a;https://github.com/ultralytics/ultralytics 这里就不详细介绍v8了 2. YOLOv8网络配置 # Ultralytics YOLO &…

超详细的 C++中的封装继承和多态的知识总结<1.封装与继承>

引言 小伙伴们都知道C面向对象难&#xff0c;可是大家都知道&#xff0c;这个才是C和C的真正区别的地方&#xff0c;也是C深受所有大厂喜爱的原因&#xff0c;它的原理更接近底层&#xff0c;它的逻辑更好&#xff0c;但是学习难度高&#xff0c;大家一定要坚持下来呀&#xff…

上海路演服务app开发的意义与主要功能

随着经济水平与互联网技术的飞速发展&#xff0c; 金融活动也逐渐深入人们的日常生活&#xff0c;各类公司也试图通过互联网获得金融机会&#xff0c;探寻新的发展。为了让企业具有更快捷&#xff0c;更便利的宣传途径与方法&#xff0c;上海路演服务app应运而生。 一&#xf…

SSM慢性病患者健康管理系统设计与实现-计算机毕业设计源码04877

目 录 摘要 1 绪论 1.1 研究意义 1.2研究目的 1.3论文结构与章节安排 2 慢性病患者健康管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分…

VS2019+QT VS tools:Debug下ok,relese下报错

报错界面 踩得坑&#xff1a; 尝试一下重装 QT VS tools&#xff0c;结果装不上。 尝试卸载原来的QT VS tools&#xff1a;卸载方法&#xff0c;到下面文件夹下可以看到有两个文件夹&#xff0c;分别是两个插件&#xff0c;找到QT的插件&#xff0c;删除文件夹即可。但是删除…

管理沟通能力测试,求职应聘和HR人才测评

什么是管理沟通能力&#xff1f; 管理沟通能力&#xff0c;包含两个方面&#xff0c;1方面是管理能力&#xff0c;另一方面是沟通能力&#xff0c;对于企业招聘来说基础管理管理、中高层管理必定会做管理和沟通能力测试。 这是从人的性格层面&#xff08;人格&#xff09;去评…

Java学习十二—Java8特性之Optional类

一、简介 Java 8 引入了 Optional​ 类作为一种容器&#xff0c;可以用来显式地表示一个值存在或不存在。它解决了传统上可能会遇到的空指针异常问题&#xff0c;同时提供了一种更优雅的方式来处理可能为null的情况。 Java 8 中引入 Optional​ 类的背景可以从以下几个方面来理…

css flex 子元素溢出时,父元素被撑开解决方案

当父元素使用flex: 1;自适应填满时&#xff0c;子元素内容溢出&#xff0c;父元素内容撑大&#xff0c;导致页面显示问题&#xff0c;或设置了overflow 为scroll 的元素没出现滚动条等问题 解决方案&#xff1a; 1.如果是横向排列&#xff0c;flex: 1;的元素加上width: 0; 此…

【Matlab 路径优化】基于蚁群算法的XX市旅游景点线路优化系统

基于蚁群算法的XX市旅游景点线路优化系统 &#xff08;一&#xff09;客户需求&#xff1a; ①考虑旅游景点的空间分布、游客偏好等因素&#xff0c;实现了旅游线路的智能规划 ②游客选择一景点出发经过所要游览的所有景点只一次&#xff0c;最后回到出发点的前提下&#xf…