Jenkins配置maven项目之打包、部署、发布的全过程
作者:bobo_许 发布时间:2023-08-07 19:14:29
标签:Jenkins,maven,项目
Jenkins和项目在两台服务器上
Jenkins的下载安装部署省略,可自行上官网。
1.安装maven插件
完成后,会出现“success”,并且勾选“安装完成后重启Jenkins(空闲时)”
2.部署有Jenkins的服务器上,下载maven,配置环境变量,我在opt/目录下放着。
执行命令:
下载:
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解压:
tar -zxvf apache-maven-3.6.3-bin.tar.gz
进入:
cd apache-maven-3.6.3
获取路径:
pwd
配置环境变量:
vim /etc/profile
=====================================================
配置文件添加下面两行内容:
export MAVEN_HOME=自己maven安装目录,我的是:/opt/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
刷新环境变量:
source /etc/profile
查看maven版本:
mvn -version
Jenkins配置maven
配置maven,setting.xml
进入到maven目录下的conf目录
编辑:
vim settings.xml
新增以下内容
<!--本地仓库-->
<localRepository>/data/software/repository</localRepository>
<mirrors>
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
3.Jenkins配置jdk、Git
配置maven进去的路径一样。
注意:都需要取消自动下载。
4.下面开始真正的部署maven项目:
点击“保存”后,去构建。
第一次构建可能时间比较长,需要下载所依赖的jar包
5.两台服务器之间开通免密传输。
需要通过脚本将该jar包传输到另一个服务器指定的目录下。将下面两个start.sh、stop.sh文件和jar包放在同一目录下,也可以换到其他路径,如需换到其他路径,下面两个脚本的部分路径内容需自行修改!!!
start.sh
#!/bin/bash
set -e #任何命令出错就退出
set -o pipefail
APP_DIR=
PROJECT_NAME=项目名字
nohup java -jar ${PROJECT_NAME}.jar > ${PROJECT_NAME}.log &
start_ok=false
if [[ $? = 0 ]];then
sleep 3
tail -n 10 ${PROJECT_NAME}.log
sleep 5
tail -n 50 ${PROJECT_NAME}.log
fi
aaa=`grep "Started" ${PROJECT_NAME}.log | awk '{print $1}'`
if [[ -n "${aaa}" ]];then
echo "app started ok"
exit 0
else
echo "app started error"
exit 1
stop.sh
#!/bin/bash
PROJECT_NAME=项目名
ps aux | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh
6.执行脚本
将以下脚本写入上图中,点击“保存”,然后点击构建,就完成了Jenkins的配置部署。
#!/bin/bash
echo "local-platform"
DIR="/home/web/container/container"
projectName="local-platform"
echo "待部署的应用服务器,可多台"
server_ips="192.168.6.155"
for server_ip in ${server_ips[@]}
do
echo "拷贝jar包到目标服务器的tmp目录"
scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar root@${server_ip}:${DIR}/${projectName}.jar
echo "ssh远程连接进行发布操作"
ssh -q -oStrictHostKeyChecking=no root@${server_ip} <<EOF
cd ${DIR}
sh stop.sh
sh start.sh
EOF
done
echo "success"
来源:https://blog.csdn.net/baidu_36336788/article/details/122878901


猜你喜欢
- 本文实例讲述了JS实现动态添加外部js、css到head标签的方法。分享给大家供大家参考,具体如下:function appendJQCDN
- 最近在开发过程中经常用到分页,今天挤出些时间来捋一捋自己的经验在web开发中,一般显示数据列表页时,我们会用到分页控件来显示数据。采用分页一
- Python tkinter中label控件动态改变值最近在用tkinter做大作业,因为是第一次接触tkinter,所以会遇到很多问题。比
- 需要先装pywin32,windows下调用winapi的接口## _*_ coding:UTF-8 _*___author__ =
- 一、触发器简介1、什么是触发器?触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。2、触发器的特性有begi
- 本文实例讲述了jQuery实现简单复制json对象和json对象集合操作。分享给大家供大家参考,具体如下:<!DOCTYPE html
- 熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也可以在状态栏中的
- 前言大家都看过彩带飘落吧?这个在比较喜庆的场合是很常见的:还有“跑马灯”效果,听起来很陌生,其实很常见,下面的就是:来源:https://w
- jQuery.parent(expr) &nb
- 装饰器这东西我看了一会儿才明白,在函数外面套了一层函数,感觉和java里的aop功能很像;写了2个装饰器日志的例子,第一个是不带参数的装饰器
- 构筑专业的网络站点和应用程序,先进的设计工具,功能强大,开放式集成系统;流畅的开发进程。Macromedia Dreamweaver MX
- 相信很多人在使用正则表达式的时候都会遇到如下的语句:通过查阅正则表达式的API文档可以了解到正则表达式的语法知识:很多小伙伴就会产生疑问为什
- 今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。re模块re.search经常用match = re.s
- SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移。
- Python中的单元测试我们先来回顾一下Python中的单元测试方法。下面是一个 Python的单元测试简单的例子:假如我们开发
- 概述在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很多,但是最基础和底层的,本人认为还是mat
- 一、使用matplotlib显示图import matplotlib.pyplot as plt #plt用于显示图片import matp
- 写入cookie实例! var u = "value=123"; document.cookie = u; 读取cook
- 这篇文章主要介绍了Python list运算操作代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 废话不多说了,关键代码如下所示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T