利用Jpom在线构建Spring Boot项目

1 简介

前面介绍了运用Jpom构建部署Vue项目,最近研究了怎么部署Spring Boot项目,至此,一套简单的前后端项目就搞定了。

2 基本步骤

因为就是一个简单的自研测试项目,所以构建没有使用docker容器,直接用java -jar命令运行jar包。

        1.从码云仓库拉取源代码;

        2.运行mvn clean install命令生成jar包;

        3.复制生成的jar包到指定目录;

        4.运行脚本启动jar包。

3 步骤详解

        1.安装Jpom服务端以及插件端不做详细介绍,官网都有十分详细的教程。

        2.项目运行环境配置。项目运行环境配置也不做介绍,Maven、Java环境这些都是必不可少。

        3.添加仓库。此步骤也比较简单,登录码云,复制对应仓库的HTTPS地址,添加到Jpom中。

        4.配置构建信息。配置构建信息和构建Vue项目十分相似,只是在发布操作的时候选择的不同,因为前端项目运用Nginx暴露服务,所以只需要对应的打包文件放置在Nginx配置文件对应的目录即可。后端项目得到jar包后,还需要运行命令启动服务,所以选择的是本地命令构建。

如图所示,红框1处为构建命令,因为本项目的特殊,基于ruoyi-vue-pro项目,如果不先对所有依赖打包,构建会报错。

红框2处为得到jar包后,复制jar包到指定文件目录,运行脚本,启动jar包。这一步每个人的做法可以不一样,不需要我这里这么复杂,不需要复制jar,直接运行即可。

-------------------------------遇到问题------------------------------------------------

在红框2处,我最开始运行的代码类似下面这一段,但是并没有成功运行我生成的jar包,这个问题还需要再研究一下。

Tag="jpom-test-jar"# 检查进程状态
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then      echo -n "boot ( pid $pid) is running" echo echo -n $"Shutting down boot: "pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')if [ "$pid" != "" ]; thenecho "kill boot process"# kill  "$pid"kill -9 "$pid"fi
else echo "boot is stopped" 
fi
# 启动项目
nohup java -Dappliction=$Tag -jar /home/java/test/springboot-test-jar-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &

        5.rerun-hh-om-backend.sh运行脚本内容

PID=$(ps -ef | grep /home/hh-om-database/honor-oa-server/backend/target/sys-server.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
thenecho Application is already stopped
elseecho kill $PIDkill $PID
fi
#启动项目
nohup java -jar /home/hh-om-database/honor-oa-server/backend/target/sys-server.jar &

其实可以看出这个脚本内容与不能启动jar包的那个脚本思想是一样的。

4 总结

本篇文章的内容其实十分简单,只简单介绍了Jpom构建Spring Boot项目,基本思想就是获取源码,mvn命令获取jar包,然后启动jar包。后面还有很多的别的类型构建,docker容器,ssh构建,后续实践再交流。

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

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

相关文章

Java程序设计进阶

Java异常处理机制 异常 异常的最高父类是 Throwable,在 java.lang 包下。 Throwable 类的方法主要有: 方法说明public String getMessage()返回对象的错误信息public void printStackTrace()输出对象的跟踪信息到标准错误输出流public void printSta…

【项目设计】网络对战五子棋(下)

我不再装模作样地拥有很多朋友,而是回到了孤单之中,以真正的我开始了独自的生活。有时我也会因为寂寞而难以忍受空虚的折磨,但我宁愿以这样的方式来维护自己的自尊,也不愿以耻辱为代价去换取那种表面的朋友。 文章目录 一、项目设…

Postman笔记

文章目录 1.安装2.简介和使用流程3 postman使用3.1 测试集与HTTP请求发送HTTP请求和分析响应数据 3.2 发送HTTP请求和分析响应数据3.3 Postman中请求体提交方式3.4 Postman使用之接口测试3.5 使用Postman新建一个mock服务3.6 请求数据的参数化3.7 断言与脚本导出 1.安装 官网地…

DP读书:《openEuler操作系统》(五)进程与线程

进程与线程 进程的概念程序:从源码到执行1. 编译阶段:2. 加载阶段:3. 执行阶段: 程序的并发执行与进程抽象 进程的描述进程控制块1. 描述信息2. 控制信息3. CPU上下文4. 资源管理信息 进程状态1.就绪状态2.运行状态3.阻塞状态4.终止状态 进程的控制进程控制源语1.创…

CrossOver23.6软件激活码怎么获取 CrossOver软件2023怎么激活

CrossOver一款类虚拟机,它的主要功能是在mac系统中安装windows应用程序。其工作原理是将exe格式的windows应用程序安装包安装至CrossOver容器中,并将运行该exe文件所需的配置文件下载至容器中,便能在mac正常运行windows应用程序了。下面就让我…

如何构建一个外卖微信小程序

随着外卖行业的不断发展,越来越多的商家开始关注外卖微信小程序的开发。微信小程序具有使用方便、快速上线、用户覆盖广等优势,成为了商家们的首选。 那么,如何快速开发一个外卖微信小程序呢?下面就让我们来看看吧! 首…

【C++入门:C++世界的奇幻之旅】

1. 什么是C 2. C发展史 3. C的重要性 4. C关键字 5. 命名空间 6. C输入&输出 7. 缺省参数 8. 函数重载 9. 引用 10. 内联函数 11. auto关键字(C11) 12. 基于范围的for循环(C11) 13. 指针空值---nullptr(C11)05. 1. 什么是C C语言是结构化和模块化的语言&…

什么是web3.0?

Web 3.0,也常被称为下一代互联网,代表着互联网的下一个重大演变。尽管关于Web 3.0的确切定义尚无共识,但它通常被认为是一种更分散、更开放且更智能的互联网。 以下是Web 3.0的一些主要特征和概念: 1. 去中心化 Web 3.0旨在减少…

人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

卷积神经网络(CNN) 卷积神经网络(CNN),也被称为ConvNets或Convolutional Neural Networks,是一种深度学习神经网络架构,主要用于处理和分析具有网格状结构的数据,特别是图像和视频数…

CSS中 通过自定义属性(变量)动态修改元素样式(以 el-input 为例)

传送门:CSS中 自定义属性(变量)详解 1. 需求及解决方案 需求:通常我们动态修改 div 元素的样式,使用 :style 和 :class 即可;但想要动态修改 如:Element-ui 中输入框(input&#x…

Windows与Linux服务器互传文件

使用winscp实现图形化拖动的方式互传文件. 1.下载winscp软件并安装,官方地址: https://winscp.net/eng/index.php 2.打开软件: 文件协议选择scp,输入linux服务器的IP和端口号,然后输入你的用户名和密码就可以登陆了。…

postman打开后,以前的接口记录不在,问题解决

要不这些文件保存在C:\Users\{用户名}\AppData\Roaming\Postman 比如,你目前使用的window登录用户是abc,那么地址便是C:\Users\abc\AppData\Roaming\Postman 打开后,这个目录下会有一些命名为backup-yyyy-MM-ddThh-mm-ss.SSSZ.json类似的文…

渗透攻击漏洞——原型链污染

背景 2019年初,Snyk的安全研究人员披露了流行的JavaScript库Lodash中一个严重漏洞的详细信息,该漏洞使黑客能够攻击多个Web应用程序,这个安全漏洞就是一个“原型污染漏洞”(JavaScript Prototype Pollution)&#xff…

【分布式】大模型分布式训练入门与实践 - 04

大模型分布式训练 数据并行-Distributed Data Parallel1.1 背景1.2 PyTorch DDP1) DDP训练流程2)DistributedSampler3)DataLoader: Parallelizing data loading4)Data-parallel(DP)5)DDP原理解析…

图论06-【无权无向】-图的遍历并查集Union Find-力扣695为例

文章目录 1. 代码仓库2. 思路2.1 UF变量设计2.2 UF合并两个集合2.3 查找当前顶点的父节点 find(element) 3. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 思路 2.1 UF变量设计 parent数组保存着每个节点所指向的父节点的索引,初始值为…

Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV,excel 导出excel/csv,亲测可共用一个方法,代码逻辑里判断设置不同的表头及contentType;导出excel导出csv 优化:有数据时才可以导出参考 导出excel/csv,亲测可共用一个方法&…

【多线程】Java如何实现多线程?如何保证线程安全?如何自定义线程池?

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 多线程 Java多线程1. 进程与线程2. 多线程1&am…

人工智能基础_机器学习001_线性回归_多元线性回归_最优解_基本概念_有监督机器学习_jupyter notebook---人工智能工作笔记0040

线性和回归,就是自然规律,比如人类是身高趋于某个值的概率最大,回归就是通过数学方法找到事物的规律. 机器学习作用: 该专业实际应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、定理证明、博弈、自动程序设计、智能控制…

【PyTorch】深度学习实践 01 Overview

人工智能概述 课程前置知识 线性代数 概率论 (不要有路径依赖,遇到不会的就现学)Python基础 人工智能 问题分类 人工智能,实际上就是利用计算机来代替人脑进行智能工作,计算机所要实现的智能可以分为两大部分&am…