Jenkins+Gitlab+Maven集成CI/CD

news2024/11/18 21:39:38

Maven+Gitlab集成

配置好下列环境

# Java环境
JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64

# Maven环境
MAVEN_HOME
/usr/local/maven

# Maven环境变量
PATH+EXTRA
$MAVEN_HOME/bin

1. 配置settings.xml路径

2. 安装maven插件

创建项目

配置gitlab地址和指定分支

3. 指定你要进行的maven操作和pom文件地址

mvn clean && mvn package

4. 构建成功后执行自定义的脚本

脚本如下

#!/bin/bash

# 查找占用7777端口的进程ID
# PID=$(sudo lsof -t -i :7777 | awk 'NR==2{print $2}')
PID=$(sudo lsof -t -i :7777)

if [ -z "$PID" ]; then
  echo "Port 7777 is not in use."
else
  # 终止进程
  kill $PID
  echo "Process with PID $PID has been terminated."
fi

# 创建时间戳文件夹
timestamp=$(date +%Y%m%d%H%M%S)
folder_name="jar_$timestamp"
cd /opt/test
sudo mkdir "$folder_name"

# 源目录
source_dir="/var/lib/jenkins/workspace/maven_test2/target"
# 目标目录
target_dir="/opt/test/$folder_name"

# 复制目录下的所有文件到目标目录
sudo cp -r "$source_dir"/* "$target_dir"

# 输出打印
echo "文件夹创建成功:$folder_name"

# 进入新建的文件夹下
cd $folder_name
jar_files=$(ls -d *.jar | awk -F/ '{print $NF}')

if [ -n "$jar_files" ]; then
  echo "找到以下.jar文件:"
  echo "$jar_files"
else
  echo "未找到任何.jar文件"
fi

#启动jar包
#java -jar $jar_files

#后台启动
sudo nohup java -jar $jar_files &

查看控制台日志,第一次部署可能下载jar包比较慢

访问服务器,成功!

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

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

相关文章

【强化学习】Q-learning训练AI走迷宫

0. 简单总结 Q-learning? 最简单的强化学习算法!不需要深度学习网络的算法!带有概率性的穷举特性!(甚至还有一点点动态规划的感觉) 1. Q-learning介绍 Q-learning是一种基于强化学习的算法,…

小程序轮播图的两种后台方式(JSP)--【浅入深出系列009】

微信目录集链接在此: 详细解析黑马微信小程序视频–【思维导图知识范围】难度★✰✰✰✰ 不会导入/打开小程序的看这里:参考 让别人的小程序长成自己的样子-更换window上下颜色–【浅入深出系列001】 文章目录 本系列校训学习资源的选择啥是轮播图轮播…

Retrospectives on the Embodied AI Workshop(嵌入式人工智能研讨会回顾) 论文阅读

论文信息 题目:Retrospectives on the Embodied AI Workshop 作者:Matt Deitke, Dhruv Batra, Yonatan Bisk 来源:arXiv 论文地址:https://arxiv.org/pdf/2210.06849 Abstract 我们的分析重点关注 CVPR Embodied AI Workshop 上…

一个开源的文件存储软件Filehub,不限速防和谐

FileHub介绍 一个基于Github开发的文件存储软件,美其名曰:FileHub,可存万物,而且绝不和谐任何文件。类似于百度云盘的功能,但是功能上肯定达不到百度云盘的效果,但是基本功能还是有的:例如登录注…

如何实现高效的动态鉴权

一、概述 Spring Security 是 Spring 框架内高度可定制化的安全框架,也是 Spring 应用的标准安全框架,提供了包括认证和鉴权在内的两大部分。其高度集成于 Spring 框架,无需引入第三方扩展模块,可以避 免大量的数据接口适配问题…

如何使用Git上传代码到GitHub简单教程

学习笔记 1:Github创建自己的一个repositories 2:随便给仓库取个名字 3:接下来,打开git 4:通过 cd 你的本地文件路径 ,进入到该路径下 5:初始化项目,在目录下面运行完该代码后会有…

Linux6.16 Docker consul的容器服务更新与发现

文章目录 计算机系统5G云计算第四章 LINUX Docker consul的容器服务更新与发现一、consul 概述1.什么是服务注册与发现2.什么是consul 二、consul 部署1.consul服务器2.registrator服务器3.consul-template4.consul 多节点 计算机系统 5G云计算 第四章 LINUX Docker consul的…

高压放大器在超声加工中的应用

超声加工是一种非常重要的现代加工技术,广泛应用于材料加工、精密制造等领域。在该技术中,高压放大器扮演着至关重要的角色,可以为超声加工提供必要的信号放大和控制功能。 超声加工的原理是通过高频振动产生机械能,并将其传递到被…

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

系列文章目录 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) 编程小白的自学笔记十(python爬虫入门二实例代码详解) 编程小白的自学笔记九(python爬虫入门代码详解) 目录 系列文章…

Jmeter性能测试配置

Jmeter检查点/断言 在上一章节中,我们通过调试脚本,通过人工验证脚本可以完成业务功能, 但在性能测试中,我们希望能通过自动验证脚本是否完成业务功能,在Jmeter 中我们可以通过检查点,也就是断言来实现自动…

19.2:纸牌问题

给定一个整型数组arr,代表数值不同的纸牌排成一条线 玩家A和玩家B依次拿走每张纸牌 规定玩家A先拿,玩家B后拿 但是每个玩家每次只能拿走最左或最右的纸牌 玩家A和玩家B都绝顶聪明 请返回最后获胜者的分数 方法一:暴力解法 自然智慧。 pack…

【NLP入门教程】二十三、循环神经网络(RNN)| 小白专场

本教程旨在为初学者提供一份全面而系统的NLP入门指南,探索NLP的核心概念、方法和技术。无论你是计算机科学的新手,还是对自然语言处理领域感兴趣的研究人员,本教程都将为你提供所需的基础知识和实用技能。 专栏地址:&#x1f4d5…

【蓝图】p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统

p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统 p40对象引用、变量有效性p41实现键盘控制物体自转创建bool值控制旋转实现通过键盘控制自转 p42p43简单点名系统Get All Actors Of Class(获得场景中所有该类的actor演员)getFor Each L…

TEE GP(Global Platform)安全认证产品

TEE之GP(Global Platform)认证汇总 一、安全认证产品介绍 选择SECURITY和TEE SECURITY,然后SEARCH,可以看到TEE对应的安全认证产品。 二、HUAWEI ITRUSTEE V3.0 ON KIRIN 980 三、SAMSUNG TEEGRIS V4.1 参考: GlobalPlatform Certification…

【linux】暗夜精灵9自动升级BIOS后,无法进入双系统

1、问题描述 暗夜精灵9自动升级BIOS后,无法进入双系统,甚至没有“多重引导菜单” 2、解决方法 1)进入BIOS 惠普暗夜精灵9进入BIOS的按键是F10 2)设置启动项 需要设置三处 功能键延时:5秒 安全启动模式:关闭 UEFI模式下的开机顺序:ubuntu3)设置显卡切换 如果NVIDIA…

TCL(Tool Command Language)学习(三)-----字符串操作

一、比较 : string compare 格式 : string compare ?-nocase? ?-length int? string1 string2 把字符串 string1 和字符串 string2 进行比较 ,返回值为 -1、0或 1 ,分别对应 string1 小于、等于或大于string2。如果有 -len…

全球百年品牌,最高已改变25次

摘要:今天,我们看到的那些持久的公司并不是真正持续了100年的公司。在100年的时间里,他们改变了25次、5次或4次,如果不改变,他们就无法生存。 近期市场调研中,许战海咨询发现国内市场已经进入无限内卷的竞争阶段。如何在内卷的竞争中保持可持…

Android OpenGL ES Camera2 实现实时抠图效果

前面文章人像抠图 + OpenGL ES 还能这样玩?没想到吧,我们介绍了利用人像抠图算法生成的 mask 图,然后结合 OpenGL 可以产生一些有趣的效果。 抠图技术应用很广泛,比如很多手机的相机自带“人像留色”滤镜:人体区域保留彩色,人体区域之外灰度化。所以人像留色的关键技术在…

Unity下如何实现低延迟的全景RTMP|RTSP流渲染

技术背景 Unity3D可以用于创建各种类型的的应用程序,包括虚拟现实、培训模拟器等。以下是一些可以使用Unity3D全景播放的场景: 虚拟现实体验:全景视频可以用来创建逼真的虚拟环境,使用户能够感受到身临其境的感觉;培…

Spring中的Bean配置

bean配置 基础配置 别名配置 作用范围配置 1、为什么bean会默认为单例? 如果不为单例,则每一次调用bean,Spring的bean容器中,会出现多个该类的对象,这会造成容器的冗余。 2、适合交给容器进行管理的bean 表现层对象…