Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

news2024/11/27 18:34:08

目录

环境准备

导入项目包

配置jenkins

构建项目 

配置项目上线

修改项目代码测试 


环境准备

本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830

首先在node01主机中操作,本次操作需要java8的版本,将之前安装的java17卸载

Java Downloads | Oracleicon-default.png?t=N7T8https://www.oracle.com/java/technologies/downloads/?er=221886#java8

#卸载之前17版本
[root@node01 ~]# yum remove -y java
#下载jdk8
[root@node01 ~]# wget -O jdk-8u411.rpm https://download.oracle.com/otn/java/jdk/8u411-b09/43d62d619be4e416215729597d70b8ac/jdk-8u411-linux-x64.rpm?AuthParam=1720715155_db3de5003585c6f38ce0b8e87c922e4b
[root@node01 ~]# yum install -y jdk-8u411.rpm

[root@node01 ~]# java -version
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)

Index of apache-local/tomcaticon-default.png?t=N7T8https://mirrors.huaweicloud.com/apache/tomcat/

#下载tomcat8
[root@node01 ~]# wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
[root@node01 ~]# tar -zxvf apache-tomcat-8.5.100.tar.gz
[root@node01 ~]# mv apache-tomcat-8.5.100 /usr/local/tomcat

修改tomcat配置

[root@node01 ~]# vim /usr/local/tomcat/webapps/docs/META-INF/context.xml

 

[root@node01 ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml

[root@node01 ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

 

[root@node01 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="admin" password="123456" roles="tomcat,manager-gui,manager-script,admin-gui,admin-script"/>

记住这个用户名admin  密码123456  这里定义好了登录tomcat管理页面的账户  

启动tomcat验证 

[root@node01 ~]# /usr/local/tomcat/bin/startup.sh

 

导入项目包

来到gitlab服务主机的web页面,登录后导入项目

Git仓库URL 

https://gitee.com/hyunze/easy-springmvc-maven

点击导入后等待一会即可完成

将jenkins服务主机的公钥复制,到gitlab平台里

[root@jenkins .ssh]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxUu9J87S1IP7fKfcjbQGJe4KNpMbVz8NfRXibyzLprGwkdPcLZL0nQGKfHiUKroO/yehztlyya/eziwpJposnzkTcY2qbUDQHNoFaY0h1sRhvtJGjdZcwvgi0QHdbv4dp/YxthMx8+UtXmXaDyBrG1ezjcON2pRSnWpUSVL9HatbC6lnhn2q5U2U790ggt2JqjeCGpRQBgusS6Xq5D+HXZfPFvCJK71N3OEBqyuf5jysLMLdRQtawck/nCeU8sTQbHVl85+oPZ5FjuX++GBqTdCdZFcWMx/8qTNaux2ctJmW9Arx2h3SgESwIEsxE3+DhyoE+88FyNdtE752Ms0JWypNGW+XVoFVyFFd8luHTQSHKmN2kMZs1Qq+8XWZHz1LgD5fOvsiGyw2ei/dI1HrhZzyVG+YpkZFxAf3GyIC8YWeu7tvcbE8z83jI9XQYUSAWg6UE4ifkVy+7QB/Su0RK2Re3hIj7tvgYxV0WOVe0/+ZB/up576xnyemeWx2LBIc= root@jenkins

 

 

配置jenkins

来到jenkins主机的web页面,确保下载了这两个插件,没有则下载

Maven Integration plugin

Deploy to container Plugin

来到jenkins主机下载部署jdk8的版本,因为本项目打包需要用到jdk8

[root@jenkins ~]# wget -O jdk-8u411.rpm https://download.oracle.com/otn/java/jdk/8u421-b09/d8aa705069af427f9b83e66b34f5e380/jdk-8u421-linux-x64.rpm?AuthParam=1721458472_cbb2875b7eee184c7878c44b44975d71
[root@jenkins ~]# yum install -y jdk-8u411.rpm

 安装目录在/usr/lib/jvm/jdk-1.8.0_421-oracle-x64

maven和git也已经预装过了在之前的环境里。

现在来到jenkins的web页面,修改java配置

构建项目 

在gitlab页面复制仓库的连接,粘贴进jenkins的配置里。

回到jenkins页面 

 

 

在jenkins主机工作空间中查看war包

[root@jenkins maven-project]# ll /root/.jenkins/workspace/maven-project
total 44
-rw-r----- 1 root root 35181 Jul 12 05:50 LICENSE
-rw-r----- 1 root root    99 Jul 12 05:50 README.md
-rw-r----- 1 root root  3062 Jul 12 06:27 pom.xml
drwxr-x--- 3 root root    18 Jul 12 05:50 src
drwxr-x--- 7 root root   148 Jul 12 06:38 target

[root@jenkins maven-project]# ll target/
total 4680
drwxr-x--- 3 root root      20 Jul 12 06:32 classes
drwxr-x--- 4 root root      72 Jul 12 06:38 easy-springmvc-maven
-rw-r----- 1 root root 4788840 Jul 12 06:38 easy-springmvc-maven.war
drwxr-x--- 3 root root      25 Jul 12 06:06 generated-sources
drwxr-x--- 2 root root      28 Jul 12 06:38 maven-archiver
drwxr-x--- 3 root root      35 Jul 12 06:06 maven-status

这里面就已经有了打好的war包,就成功构建并打包了。 

配置项目上线

来到jenkins的web页面,继续增加maven-project任务的配置

 

 设置好后点立即构建,然后看到正确输出即可。

来到项目上线的主机,到tomcat管理页面查看

管理页面需要登录,安装时配置的tomcat的用户名和密码

 

这里就看到自动打包并上线的项目了。 

这里使用的项目的用户名和密码,在其代理里定义的,用户名:admin   密码:admin  输入后登录即可。

修改项目代码测试 

来到gitlab用户页面使用管理员用户登录,进修修改代码,并提交测试

 

刷新即可看到更改后的文字

回到jenkins页面,点击立即构建

来到tomcat页面查看,此时可以看到登录页标题发生了改变,即完成了一次构建,自动拉取,打包,上线。

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

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

相关文章

大模型学习笔记 - LLM模型架构

LLM 模型架构 LLM 模型架构 1. LLM 核心模型 Transformer2. 详细配置 2.1 归一化方法2.2 归一化模块位置2.3 激活函数2.4 位置编码 2.4.1 绝对位置编码2.4.2 相对位置编码2.4.3 旋转位置编码 RoPE2.4.4 ALiBi位置编码 2.5 注意力机制 2.5.1 完整自注意力机制2.5.2 稀疏注意力机…

【QT】QT 概述(背景介绍、搭建开发环境、Qt Creator、程序、项目文件解析、编程注意事项)

一、Qt 背景介绍 1、什么是 Qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。 它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向对象的&#xff0c;很容易扩展。Qt 为开发者提供了一种基于组件的开发模式&#xff0c;开发者可以通过简单的拖拽和…

Puromycin(嘌呤霉素)— pac基因筛选抗生素

Puromycin是由Streptomyces alboniger&#xff08;白黑链霉菌&#xff09;产生的一种氨基糖苷类抗生素&#xff0c;可抑制原核细胞和真核细胞的肽基转移。Puromycin可抑制革兰氏阳性菌、多种动物细胞和昆虫细胞的生长&#xff0c;但是真菌和革兰氏阴性菌对Puromycin具有抗性&am…

大屏系统类优质UI风格

大屏系统类优质UI风格

JetBrains IDE 使用git进行多人合作开发教程

以下DEMO可以用于多人共同开发维护一个项目时&#xff0c;使用Git远程仓库的实践方案 分支管理 dev&#xff1a;开发分支test&#xff1a;测试分支prod&#xff1a;生成分支 个人开发也最起码有一个masterdev&#xff0c;作为主分支和当前开发分支。master永远是稳定版本&am…

工厂方法模式java

文章目录 1. 概念2. 示例3. 代码示例 1. 概念 定义: 工厂方法模式又叫工厂模式,通过定义工厂父类创建对象的公共接口,而子类负责创建具体的对象 作用: 由工厂的子类来决定创建哪一个对象 缺点: 工厂一旦需要生成新的东西就需要修改代码,违背的开放封闭原则 2. 示例 3. 代码示…

RabbitMQ发布确认及交换机类型

RabbitMQ发布确认机制详解 一、引言 在消息队列&#xff08;MQ&#xff09;技术中&#xff0c;RabbitMQ因其稳定性、可靠性和易用性而受到广泛欢迎。为了确保消息的可靠传递&#xff0c;RabbitMQ提供了一系列高级特性&#xff0c;其中发布确认&#xff08;Publisher Confirms&…

顶级 Vue 管理仪表板和模板

Vue.js 是当今繁忙的 Web 开发领域中最受欢迎的 JavaScript 框架之一&#xff0c;用于创建交互式动态用户界面。Vue.js 的组件反应性及其流畅的数据绑定使其在管理仪表板设计方面占据了主导地位。 本文讨论了一些领先的 ​​Vue 管理员仪表板&#xff0c;它们可以节省您制作 We…

昇思25天学习打卡营第11天|基于 MindSpore 实现 BERT 对话情绪识别

BERT是一种先进的语言模型&#xff0c;由Google在2018年推出。它通过双向编码器Transformer的Encoder部分&#xff0c;捕捉词语和句子的深层含义。BERT的创新之处在于其预训练方法&#xff0c;特别是Masked Language Model和Next Sentence Prediction&#xff0c;这使得它在问答…

【Android面试八股文】荣耀面试算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵

文章目录 1. 算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵1.1 题目描述1.2 算法实现1.2.1 步骤说明:1.2.2 算法实现1.2.3 代码实现:1.2.4 程序说明:1.2.5 示例详细讲解如何将一个矩阵顺时针旋转90度1. 算法题:输入一个N阶方…

【练习】链表题

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 两数相加 题目描述 题解 代码实现 两两交换链表中的节点 题目描…

4、可变电阻、可变电感、可变电容(simulink仿真)

4、可变电阻、可变电感、可变电容&#xff08;simulink仿真&#xff09; 1&#xff0c;自己搭建R/L/C元件 2&#xff0c;搭建可变R/L/C元件 以第三讲为基础做此讲 MATLAB中 电气仿真元件 1&#xff0c;U/I 测量, 2&#xff0c;U/I关系方程建立受控源信号 自己的电阻 我们先将其…

基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-排它网关里数字比较大小的处理

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、在仿钉钉流程中&#xff0c;条件的数字比较跟普通的字符串比较又不一样&#xff0c;同时在flowable里也是不同的表达式&#xff0c;所以需要特殊处理 2、后端方面 增加操作符 //以下为…

Linux 注意事项

Linux 与 Windows 是两个相互独立的操作系统&#xff0c;两者有较大差距&#xff1a; 1.1 Linux 严格区分大小写&#xff08;Windows不严格区分大小写&#xff09;&#xff1b; 1.2 Linux 中所有内容&#xff0c;硬件设备都以文件形式保存在 /dev 目录下&#xff08;万物皆文件…

16_网络IPC4-数据传输

send() 用于流式套接字 向SOCKET发送数据 。 Socket 只是通信节点&#xff0c;通信之前需要连接&#xff0c;即发送端发送之前 需要知道对端的地址&#xff0c;才能找到对端的socket节点&#xff0c;才能发送成功。而接收端不同&#xff0c;接收函数 如 recv () 不需要一定知道…

【ai】学习笔记:电影推荐2:工程+ 深度学习模型

ml_movice_recommend_flask http://127.0.0.1:5000/recommend【ai】学习笔记&#xff1a;电影推荐1&#xff1a;协同过滤 TF-DF 余弦相似性 进行了学习和理解&#xff0c;成功运行了工程。本文进一步分析。不知道是否有引入语义分析&#xff1f;还是单独只是匹配算法&#xff…

吴恩达老师机器学习-ex1

线性回归 有借鉴网上部分博客 第一题 单变量 先导入相关库 import numpy as np import pandas as pd import matplotlib.pyplot as plt 读取数据&#xff0c;并展示前五行 datapd.read_csv(path,headerNone,names["Population","Profit"]) data.head…

C++基础入门(二)(函数重载,引用,内联函数,nullptr)

目录 一. 函数重载 1. 概念 2. 实现 (1). 参数类型不同 (2). 参数个数不同 (3). 参数类型顺序不同 3. 注意事项 (1). 返回值不能作为重载的条件 (2). 不能仅按函数返回类型重载 (3). 与缺省参数的问题 二. 引用 1. 概念和定义 2. 引用的特性 (1). 引用在定义时必须…

【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Spring Boot集成Spring Batch快速入门Demo

1.什么是Spring Batch&#xff1f; Spring Batch 是一个轻量级的开源框架&#xff0c;它提供了一种简单的方式来处理大量的数据。它基于Spring框架&#xff0c;提供了一套批处理框架&#xff0c;可以处理各种类型的批处理任务&#xff0c;如ETL、数据导入/导出、报表生成等。S…