从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

简介: 从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

🚀简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件


一键部署Jpom

本文主要介绍: 如何从零开始使用一键安装的方式安装 Jpom 服务端+插件端配置 本文中服务端和插件端是安装在同一个服务器中的,实际操作时根据业务情况来安装

Jpom 服务端、Jpom 插件端(安装 jpom 需要 java 环境)




安装服务端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
mkdir -p /home/jpom/server/
cd /home/jpom/server/
# apt-get 不行就换 yum 
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Server jdk


image.png




初始化服务端

访问ip:2122/


安装插件端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
mkdir -p /home/jpom/agent/
cd /home/jpom/agent/
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Agent jdk



添加插件节点


注意要填写端口号哟

这里的节点账号密码和超级管理员账号密码是两个都行哟

节点账号密码在安装启动成功后会输出到控制台,请根据输出到内容填写。如果自己修改了账号密码则填写修改后的

也可单独配置节点密码  application.yml 自定义配置了账号密码不会出现此文件

image.png




这样就完成 Jpom 的安装流程


添加SSH节点

配置 ssh 信息、便于构建后发布到对应服务器中 注意: 文件目录为给对应 ssh 授权部分目录可以在 Jpom 中使用,一般用于构建发布目录、ssh 文件管理

image.png


点击分配给默认空间即可

点击关联->配置->配置项目白名单 图下所示


这样子就可以操作ssh里面的目录文件了

image.png



本地构建 + SSH 发布 java 项目

本文主要介绍:如何从零开始使用 Jpom 中的构建功能快速实现将项目从仓库中构建并发布到服务器中并启动项目




一、配置仓库信息

主要用于构建项目

image.png



二、配置项目查看构建信息,用于管理项目发布流程


  1. 构建的项目(仓库)信息
  2. 项目的构建命令(依赖的构建环境:maven、vue、python、php)
  3. mvn clean package
  4. npm run build
  5. 构建产物的目录(项目中的相对路径)
  6. java 项目一般位于当前项目 target 目录下的某个文件
  7. vue 项目一般位于当前项目 dist 文件夹
  8. 发布目录:项目将发布服务器到哪个目录(需要已经配置到 ssh 文件目录中)
  9. 发布命令:执行发布后执行的命令,如:配置停止、启动项目

image.png

image.png



Java 项目发布命令示例

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" != "" ]; then
    echo "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 &



解释名词


  1. 构建命令springboot maven 打包
  2. 产物目录打完包的jar的地址相对路径当前模块下的target
  3. 发布操作只介绍SSH其他的JPOM查看具体实现发布的SSH: 选择你配置好的SSH节点

发布目录: 把jar复制到指定目录 发布前命令:校验是否需要停止当前项目 发布后命令:启动项目 图片当中的发布前命令

cd /root/jpom
echo "======================================================================="
echo "查看密钥位置:"
ls /root/weChartPayment/apiclient_key.pem
echo "复制密钥到发布目录:"
cp -p  /root/weChartPayment/apiclient_key.pem /root/jpom/wx-pay-demo/target
ls /root/jpom/wx-pay-demo/target
echo "======================================================================="
ls
echo "======================================================================="
Tag="wx-pay-demo"
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" != "" ]; then
    echo "删除存在的程序 $pid"
    kill -9 "$pid"
    echo "删除成功准备重新启动 $pid"
  fi
else 
   echo "SpringBoot 启动成功 请等待10- 20 秒"  
fi

发布后命令

echo "开始执行启动命令" 
echo "====================================================================================================================================================="
nohup java  -jar  /root/jpom/wx-pay-demo/target/wx-play-demo-0.0.1-SNAPSHOT.jar > /root/jpom/wx-pay-demo/target/application.log 2>&1 &
echo "====================================================================================================================================================="
echo "SpringBoot 启动成功 请等待10- 20 秒"



可以愉快的点击构建(直接构建)




最后


本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
862 8
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
571 10
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
680 3
|
机器学习/深度学习 人工智能 监控
Java与AI模型部署:构建企业级模型服务与生命周期管理平台
随着企业AI模型数量的快速增长,模型部署与生命周期管理成为确保AI应用稳定运行的关键。本文深入探讨如何使用Java生态构建一个企业级的模型服务平台,实现模型的版本控制、A/B测试、灰度发布、监控与回滚。通过集成Spring Boot、Kubernetes、MLflow和监控工具,我们将展示如何构建一个高可用、可扩展的模型服务架构,为大规模AI应用提供坚实的运维基础。
797 0
|
人工智能 Java 物联网
Java与边缘AI:构建离线智能的物联网与移动应用
随着边缘计算和终端设备算力的飞速发展,AI推理正从云端向边缘端迁移。本文深入探讨如何在资源受限的边缘设备上使用Java构建离线智能应用,涵盖从模型优化、推理加速到资源管理的全流程。我们将完整展示在Android设备、嵌入式系统和IoT网关中部署轻量级AI模型的技术方案,为构建真正实时、隐私安全的边缘智能应用提供完整实践指南。
774 3
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1267 4
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
904 0
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
650 1
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
574 1
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案