jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例

8、 使用TPM密钥:从理论到实践的全面指南 本文全面介绍了如何使用TPM(可信平台模块)进行密钥管理,涵盖密钥的创建、存储、加载、迁移以及特殊密钥类型的使用。通过详细的操作步骤和代码示例,帮助读者掌握TPM密钥管理技术,确保系统的安全性和可靠性。 阅读详情

jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可

这里安装的jenkins-2.39-1.1


 
wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm  sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key  sudo yum -y install jenkins-2.39-1.1.noarch.rpm 安装完后防火墙放行端口 

安装不是重点 重点是去配置jenkins

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

1.先配置好jenkins需要用到的其他外部组件 jdk,maven,git/svn

安装git: yum install git

git地址使用命令查询 whereis git

 

maven jdk 安装好后配置好环境变量 自行百度

查询环境变量中的jdk和maven地址

 

启动 停止 重启

service jenkins start

service jenkins stop

service jenkins restart

进入配置阶段

 

1.1 进入系统设置- 全局工具配置中配置 jdk maven git 不要勾选自动安装

jdk maven 使用的是环境变量中的地址

 

 

2.开始新建一个jenkins任务

 

2.1 general

这里是一些通用的设置, 丢弃旧的构建 多次构建又不手动清除 会生成很多文件 ,占用磁盘空间 这里的丢弃旧的构建的配置大家按需配置即可

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

 

2.2源码管理

 

版本控制这里使用的是git git的地址填进去 点击Add 添加 git的账号密码 然后在下拉框中选择刚刚新增的账号密码

 

 

选择了正确的git账号密码 红色的报错信息就会消失 下面也会显示git代码的主干 如果需要的是其中的分支 修改成对应的分支名称就行

 

2.3构建触发器

 

这里一般默认的触发器就行 如果你需要定时构建 比如每隔一段时间重新部署 或者每隔一段时间检测有没有提交 有提交就部署

 

定时构建 “日程表”格式为 和cron表达式一样 如果你想实现什么 对应着去百度就行


 
## 每行由 5 个值组成(空格或TAB分隔),分别表示分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-7, 0/7=周日) ## "M,N" 表示M和N;"M-N" 表示范围[M,N];"M-N/X" 表示范围[M,N]内每隔X;"*/X" 表示整个范围内每隔X ## 前面提到的M/N/X的值都可以用H(意为Hash)代替,散列值起到随机值的效果,且同一项目取值稳定,这对于项目多时分散压力很有用。 H/10 H(0-8) * * 1-5 ## 触发时间: 工作日、Hour为0~8按哈希随机、Minute以10为间隔 H/10 H * * 0,6,7 ## 触发时间: 周末、Hour为全天按哈希随机、Minute以10为间隔 ## “日程表”修改后,下方会给出下次执行时间点的预告。 

2.4 构建环境和pre steps

这里使用的是默认的,有需要的对应着去查询资料

 

2.5 Build

 

因为 本文中项目结构 图中红框框出来的都是一个个子项目

 

这里我只想build 其中的mobile模块 就需要配置 -pl mobile -am

加上其他的mvn打包的命令 clean package -pl mobile -am -Dmaven.test.skip=true

2.6 构建设置 构建后操作

这里可以设置构建后邮件通知

 

-------------------------------------------------------------------------------------------------------最重要的一部分当然要有华丽的分割线-----------------------------------------------------------------------------------------------------------------------------------------

2.7 Post Steps

构建完成后操作 这里使用的执行shell命令

shell脚本里面写的就是无非就是把编译好的war包放到对应的容器中去 然后启动容器

最关键得地方, 不同的项目.不同的容器这里的shell脚本肯定是有不一样,网络上的这类shell只能参考,具体还得自己动手去写

 

这里放一个shell示例, 容器是tomcat

思路: 先查对应的tomcat时候启动, 启动了就kill掉, 然后删除webapps中的包, 把jenkins编译的包复制到对应的容器, 重命名包 , 启动容器

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。


 
#!/bin #kill tomcat pid #有错的shell  pidlist=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'` function stop(){ if [ "$pidlist" == "" ] then echo "----tomcat_mobile 已经关闭----" else echo "tomcat_mobile 进程号 :$pidlist" kill -9 $pidlist echo "KILL $pidlist:" fi } stop pidlist2=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'` if [ "$pidlist2" == "" ] then echo "----关闭tomcat_mobile成功----" else echo "----关闭tomcat_mobile失败----" fi rm -rf /usr/local/tomcat_mobile/webapps/ROOT* cp -r /var/lib/jenkins/workspace/baiyangjinrong-mobile/mobile/target/mobile.war /usr/local/tomcat_mobile/webapps sleep 3s mv /usr/local/tomcat_mobile/webapps/mobile.war /usr/local/tomcat_mobile/webapps/ROOT.war cd /usr/local/tomcat_mobile/bin ./startup.sh 

 
问题1:上述shell脚本执行后 肯定会出现tomcat没有启动的情况   1.这里如果tomcat和jenkins 在同一台linux上可以 加上 export BUILD_ID=tomcat_mobile_build_id      原因是: jenkins在执行sh脚本的时候,如果脚本中有启动后台进程的情况,例如tomcat的关闭和启动,jenkins在job构建结束之后,会kill所有的脚本里面衍生出的子进程。修改环境变量BUILD_ID的值,这样,衍生出来的子进程就不会被kill了   2.tomcat和jenkins不在一台linux上        假如部署jenkins的机器是A,部署tomcat的机器是B。那可以在A机器上写一个脚本,把需要在B机器上执行的命令封装在A机器上的这个脚本里面,这样也能保证衍生进程正确执行结束。 

 


 

就是相当于把上面的shell写到一个sh文件中 jenkins执行这个sh文件

 

因为我便是jenkins和Tomcat在同一台linux上 所以这里就没有把shell脚本写在sh文件中


 
#!/bin/sh #kill tomcat pid #这句尤为重要 export BUILD_ID=tomcat_mobile_build_id # 1.关闭tomcat pidlist=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'` function stop(){ if [ "$pidlist" == "" ] then echo "----tomcat 已经关闭----" else echo "tomcat进程号 :$pidlist" kill -9 $pidlist echo "KILL $pidlist:" fi } stop pidlist2=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'` if [ "$pidlist2" == "" ] then echo "----关闭tomcat成功----" else echo "----关闭tomcat失败----" fi # 2.移除原来tomcat中webapps中的项目文件夹 rm -rf /usr/local/tomcat_mobile/webapps/ROOT* # 3.复制jenkins生成的war包到tomcat中webapps中 cp -r /var/lib/jenkins/workspace/baiyangjinrong-mobile/mobile/target/mobile.war /usr/local/tomcat_mobile/webapps sleep 3s # 4.修改war包的名称 mv /usr/local/tomcat_mobile/webapps/mobile.war /usr/local/tomcat_mobile/webapps/ROOT.war # 5.启动tomcat cd /usr/local/tomcat_mobile/bin ./startup.sh 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.8 可能出现的问题:

1. 这里如果出现如下的问题 就是因为linux上没有安装git

 

安装 yum install git 后去全局工具配置你配置好git的路径

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

2. jenkins部署失败 首先去看对应任务的日志

 

 

 

从日志中可以看出来这里jenkins 编译是成功的 但是在复制war的时候报错, 图中是因为不小心把空格敲成换行了

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

从 PI Start Page 到 ESR、ID、SLD,重新理解 SAP PI 的工具访问体系 摘要 SAP PI工具入口设计反映了系统核心分工逻辑。不同角色通过特定入口访问专属工具:集成顾问使用Enterprise Services Builder设计接口,BASIS管理员通过SAP NetWeaver Administrator监控运行状态,技术顾问在Integration Builder配置路由,系统维护则需进入System Landscape Directory。这种设计体现了PI平台将工作划分为管理、技术配置、设计、业务配置和监控五大领域。尤其值得注意的是技术配置与业务配置的连续性关系,如I 阅读详情

相关推荐

Contest 226 - C - Martial artist

from atcoder Problem Statement Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Takahashi is a martial artist. There areNNmoves that a martial artist can learn, called Move11,22,\ldots…,NN. For each1 \leq i \leq N1≤i≤N, it takes...

m0_54674275的博客 1020

Jenkins部署到tomcat中并重启tomcat

背景需求   由于项目需要 ,用jenkins部署时需要重启tomcat,但是服务器中安装了不止一个tomcat,这就需要重启指定的tomcat而不影响其它tomcat的使用。    因为是用jenkins的shell脚本所以这些内容需要写到shell脚本里。 关闭tomcat   红色字体的tomcat是要关闭的tomcat的名字。 echo -- stop tomcat #

sms 9714

3D坐标系转换实战:如何用Python快速实现旋转矩阵与平移向量的组合变换

本文详细介绍了如何使用Python和NumPy实现3D坐标系转换中的旋转矩阵与平移向量的组合变换。通过齐次坐标和变换矩阵的数学原理,结合代码示例,帮助开发者高效处理机器人路径规划和计算机视觉中的空间变换问题,并解决实际应用中的常见错误。

pluto的博客 959

tomcat部署,jenkins部署使用

/安装jdk环境 [ root@localhost yum . repos . d ] # dnf - y install java17 - openjdk * //省略安装过程 //查看安装的版本 [ root@localhost ~ ] # java - version下载地址。

k2902314105的博客 2338

【AUCell打分】:评估一个基因集在单细胞转录组的每个细胞中特定的活性程度

AUCell使用曲线下面积来计算输入基因集的一个有意义的基因子集是否在每个细胞的表达基因中富集。AUC 分数在所有细胞中的分布允许探索特征的相对表达。由于评分方法是基于排名的,因此 AUCell 与基因表达单位和归一化程序无关。此外,由于细胞是单独评估的,因此可以很容易地应用于更大的数据集。

weixin_40695088的博客 1万+

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.csdn.net/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6636

jenkins的热部署_Jenkins+tomcat自动发布的热部署/重启及遇到的问题解决办法(推荐)...

一.背景公司的项目一直手动maven打包、上传服务器、关闭/开启tomcat,整个流程下来耗时耗力,虽然可以将所有流程通过shell脚本一次性解决,但如果可以通过idea的Jenkins插件一键自动部署,那更省时省力。下面是一个简单的发布tomcat的shell脚本,执行下面脚本的前提是要在服务器中安装了git、maven# 先关闭tomcat进程kill -9 `ps aux|grep tomc...

weixin_32059007的博客 452

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南

本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。

2201_76125261的博客 1554

jenkins 下载 安装 启动教程-通过tomcat方式托管systemctl启动

1.环境搭建 jdk环境必须大于1.8,jdk下载地址,如果机器存在jdk环境,不需要额外安装 2.tomcat环境安装 tomcat下载地址 2.1 tomcat解压 tar -zxvf apache-tomcat-8.5.73.tar.gz 2.2 tomcat修改默认访问路径 /home/apache-tomcat-8.5.73/conf/server.xml # 在host标签中添加一下内容 <Context path="" docBase="/home/apache-tomcat-8

constant_rain的博客 1766

【R-terra包|第一节】- 栅格相关性、散点图 、波段的计算与异常值处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 —```mermaid flowchat st=>start: 开始 e=>end: 结束 op=>operation: 我的操作 cond=>condition: 确认? st->op->cond cond(yes)->e cond(no)->op 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能.

地理空间科学的博客 5614

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

WW、forever的博客 195

记一次Jenkins无法启动tomcat问题解决

项目发版部署采用Jenkins+tomcat进行。jenkins的tomcat和项目的tomcat在同一台服务器上,端口不同。发版采用jenkins的shell脚本进行,会在服务器上拉取最新代码,然后打包,替换war包,kill掉tomcat进程再重新启动。但只能做到kill掉进程,无法启动项目的tomcat,需要每次去服务器上手动执行startup.sh来启动。首先看看是不是shell脚本的问题,部署的shell脚本如下: 可以看到,shell脚本没有什么问题。网上搜索相似问题,大部分都是说要加上BUIL

Forget_Re的博客 1958

JS逆向-7881游戏平台Lb-Sign参数和Lb-Timestamp参数

本文是该专栏的第79篇,后面会持续分享python爬虫干货知识。本文以7881游戏平台为例,通过JS逆向获取它的lb-sign参数和lb-timestamp参数生成规律。针对lb-sign和lb-timestamp两个参数具体的“逆向”思路逻辑,笔者将在本文进行详细说明,并且将在正文结合“完整代码”来详细介绍。废话不多说,具体细节部分以及详细思路逻辑,跟着笔者直接往下看正文部分。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1220

jenkins自动部署应用到Tomcat,编译后shell脚本的简单示例

1.先配置好jenkins需要用到的其他外部组件 jdk,maven,git/svn    安装git: yum install git   git地址使用命令查询 whereis git      maven jdk 安装好后配置好环境变量 自行百度   查询环境变量中的jdk和maven地址       进入配置阶段         1.1 进入系统设...

zhuguanghalo的博客 793

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jenkins 构建后shell_jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例

jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可这里安装的jenkins-2.39-1.1wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpmsudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.keysudo yum -y inst...

weixin_39593744的博客 352

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

go jenkins自动编译部署

jenkins安装 jenkins配置 go插件安装 编译配置 参考文档 jenkins安装 安装包下载位置,可以直接安装对应系统安装包,也可以使用通用安装包.war文件,这里使用war包安装。 单独运行 Jenkins可以作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)。 运行命令java -jar jenkins.war...

文洲的专栏 2913

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

使用Docker搭建Jenkins到自动构建,自动部署(全过程,避免踩坑版)!

不废话,直接上干货。 第一步,先安装docker容器, 参考的这哥们的文章。 https://www.cnblogs.com/stulzq/p/8627360.html 开始 cd home 到home目录下 1.新建Dockerfile touch Dockerfile vim Dockerfile 2.加入以下内容: FROM jenkins USER root ...

每一步,都在缩短你与梦想的距离。 2万+

Jenkins项目部署

Jenkins项目部署(配置git,maven,jdk)

Z15800020057的博客 2247

实现自动化构建与集成:Jenkins与SVN整合的指南

enkins是一个流行的开源自动化服务器,可以用于构建、测试和部署软件项目。而SVN则是一个版本控制系统,可以帮助开发人员管理和协调代码。将Jenkins和SVN整合起来,可以实现自动化构建和集成,减少手动操作的错误和时间浪费。此外,整合后还可以轻松管理和跟踪代码变更,方便团队协作和版本控制。此篇文章将详细介绍如何在Jenkins中配置SVN插件,以及如何使用Jenkins集成SVN进行自动化构建和测试

唯有努力,方可自信! 1万+

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

这里的username与password需要到tomcat的conf文件夹中的tomcat-users.xml修改。tomcat-users.xml中的用户名及密码默认是注释掉的,所以需要修改,也可以直接复制以下代码到</tomcat-users>之前。1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_144,网上帖子也很多,不赘述。WAR/EAR files:输入war包的相对路径,如我的war包在新建目录的target下。到这里就配置完成了,点击构建从控制台查看输出信息即可。

Aaron599的博客 2758

LINUX下的JENKINS+TOMCAT+MAVEN+GIT+SHELL环境的搭建使用(JENKINS自动化部署)

LINUX下的JENKINS+TOMCAT+MAVEN+GIT+SHELL环境的搭建使用(JENKINS自动化部署) 一、安装jenkins 1.下载jenkins 这里我选择的是war包安装jenkins,简单不伤脑,别的博客写的jenkins版本都很旧,没用最新的,写个比较新的配置2.20版。 官网:https://jenkins.io/index.html WAR包下...

alii79643的博客 177

Jenkins自动部署war和jar包

Jenkins部署在Linux系统请参照 https://blog.csdn.net/liuxiaoming1109/article/details/8894704 切换成中文请参照 https://blog.csdn.net/liuxiaoming1109/article/details/88987881 【系统管理】-【全局工具配置】配置Java环境需要的工具;JDK、Gi...

古今来色色形形无非是戏,天地间奇奇怪怪何必认真. 8032

Jenkins+maven+gitlab+shell 实现项目自动化部署

以前部署项目步骤比较繁琐,要先拉代码再通过maven打包,再上传,然后一切顺利的情况下启动tomcat,然后结束,一切太人工化也比较浪费实现,下面是工作之余在测试环境上搭建的一套流程。搭建之前要确认,jdk , maven,git 这些已经在服务器上搭建成功,这些搭建都比较简单,这这里就不再赘述,gitlab使用的是公司服务也没有进行搭建。cp -r/usr/data/jdk/bin/* /usr/bin (前面是自己的jdk的目录)安装上面配置自己的ssh服务就是你的服务器,点击测试成功即可。

专注于 Java 后端架构、微服务、分布式、前端及 AI 领域的技术分享,是开发者获取硬核知识、交流实战经验的专业博客。 1133

性能自动化部署工程:Jenkins部署Java工程,WEB工程

目录 1. Jenkins部署Java工程说明 2. Jenkins中设置远程连接Linux的账户 3. Jenkins中,对应Job的配置说明 4. Jenkins部署WEB工程 1. Jenkins部署Java工程说明 (1)可以用Jenkins的中一个job对一个Maven项目下的多个工程文件夹进行管理和操作:可以在一个job中实现编译,打包,部署。而不需要建立4个job。 (2)Java的Maven工程结构构建顺序是: -> parent (使用mvn install 生成对p

sulia1234567890的博客 2273

Jenkins自动化部署项目

一、在你的本地电脑或者linux服务器上下载安装jenkins: jenkins下载地址:https://jenkins.io/下载网站的war包版本就好了 下载完后把它部署到你的tomcat上运行:放到tomcat的webapps目录下,启动tomcat(windows下双击startup.bat或者linux下运行shstartup.sh),然后通过浏览器访问,如我的电脑上访问:lo...

xinzhong19901001的专栏 417

教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)

本文转载自 教你如何用Jenkins自动化部署项目(教程,从零到搭建完成) 一、在你的本地电脑或者linux服务器上下载安装jenkins: jenkins下载地址:https://jenkins.io/ 下载网站的war包版本就好了 下载完后把它部署到你的tomcat上运行:放到tomcat的webapps目录下,启动tomcat(windows下双击startup.bat或者linu...

qq_34964197的博客 690
上一篇: 了解Logstash
下一篇: Kibana(一张图片胜过千万行日志)--转
javaQQ群 866865133
博客等级 码龄8年 59粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值