java 一键部署 jar 包和 war 包

 更新时间:2021年09月01日 17:14:25   作者:吉他手_c156  
这篇文章主要介绍了Java创建打包命令、创建启动文件等功能实现Java一键部署 jar 包和 war 包,感兴趣的下伙伴可以参考下文

java 一键部署 jar 包和 war 包

一、创建打包命令 gateway-package.bat

@echo off
cd /d "F:\uincall-cloud-service\uin-api-alibaba\gateway\"
gradle build bootJar
  • @echo off 关闭命令回显,当不需要 dos 命令一行一行在命令窗口中显示的时候使用,@echo on 显示命令回显

例如:

当为 @echo on 会显示执行的命令

@echo on
title  A
color 01
echo %date%
pause


当为 @echo off 并不会执行 title A 和 color 01 命令

echo 是输入提示信息
pause 是暂停执行执行命令,按下任意键后会继续执行,pause 会提示“请按任意键继续...”

  • 当执行的 bat 不在项目目录时,需要进入到项目目录执行打包命令,需要使用 /d 命令,后面是进入的目录
  • gradle build bootJar 是执行 gradle 打包命令,如果是 maven 工程则使用 maven 打包命令,例如:mvn clean package -Dmaven.test.skip=true

创建项目打包并执行到上传到服务器,并且结束之前项目部署的进程,并启动新的部署命令

二、创建启动文件 gateway.xml

<?xml version="1.0" encoding="utf-8" ?>
<config>
    <threadPoolSize default="5">3</threadPoolSize><!--线程池大小,如果上传服务器多的话可以调大,默认5个线程-->
    <servers>
        <server>
            <!--  服务器 ip -->
            <host>1.0.0.0</host>
            <!--  服务器用户名  -->
            <userName>root</userName>
            <!--  服务器密码  -->
            <password>password</password>
            <!--  上传的文件,可以有多个  -->
            <uploads>
                <upload>
                    <!--  上传的包路径  -->
                    <local>F:\uincall-cloud-service\uin-api-alibaba\gateway\build\libs\gateway-1.0.0.jar</local>
                    <!--  上传到服务器的路径  -->
                    <remote>/root/data/callcenter</remote>
                </upload>
            </uploads>
            <!--  需要执行的命令,可以有多个 -->
            <commands>
                <!--  结束之前部署的进程  -->
                <command><![CDATA[source /etc/profile; ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9]]></command>
                <!--  重新部署新上传的包  -->
                <command><![CDATA[source /etc/profile; nohup java -jar /root/data/callcenter/gateway-1.0.0.jar >> /root/data/callcenter/gateway.log 2>&1 &]]></command>
            </commands>
        </server>
    </servers>
</config>


  • ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 查询正在部署的项目进行并且杀死
  • ps -ef | grep gateway-1.0.0.jar 是查询进程
  • grep -v grep 过滤包含 grep 的进程行,然后再杀掉剩下的进程
  • awk '{print $2}' 提取找到的进程行记录中第二列的参数,也就是正在执行项目的进程号

  • xargs kill -9 把前面的参数都传递给后面的命令 kill -9

三、一键打包并部署脚本 gateway-deploy.bat 文件内容

call gateway-package.bat
java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\gateway.xml
pause


  • call gateway-package.bat 是执行上面的项目打包的 gateway-package.bat 文件,call 作用是可以在当前批处理执行前调用另一个批处理文件,这里的意思就是先打包在上传至服务器并且部署
  • java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar 可执行文件 jar 包,负责执行上传部署指令
  • F:\uincall-cloud-service\test-deploy\gateway.xml ,上传部署的命令都写在 gateway.xml 中

注意:这里要执行的文件都需使用绝对路径,哪怕在一个文件加里!!!

四、双击打包部署 bat 文件 gateway-deploy.bat

成功上传并且部署成功!!

五、执行 vue 打包并且上传部署

创建 vue 打包 bat 文件 vue-package.bat

@echo off
echo 开始打包......
cd /d "F:\uincall-cloud-service\cc.uincall.com\"
npm run build
echo 打包完毕  success

F:\uincall-cloud-service\cc.uincall.com" 是工程根目录

六、安装 7z 压缩工具并配置系统环境变量

创建 7z 压缩 vue 打包后的 bat 文件 zip.bat

@echo off
set CALLCENTER_PATH=F:\uincall-cloud-service\cc.uincall.com\dist\*
set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar

echo 开始压缩  callcenter vue
7z a -r %ZIP_PATH% %CALLCENTER_PATH%

  • set CALLCENTER_PATH=F:\uincall-cloud-service\cc.uincall.com\dist* vue 打包后的文件夹目录,打包后的文件都在此目录下
  • set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar 设置打包后的文件名和格式
  • 7z a -r %ZIP_PATH% %CALLCENTER_PATH%,7z:使用 7z 压缩,a:是添加文件到压缩文件中,-r: 包括子目录,其他是引用上面定义的变量,也就是打包后的格式和需要打包的文件所在目录

七、创建上传部署文件 webConfig.xml

<config>
    <threadPoolSize default="5">3</threadPoolSize><!--线程池大小,如果上传服务器多的话可以调大,默认5个线程-->
    <servers>
        <server>
            <!--  服务器 ip -->
            <host>1.0.0.0</host>
            <!--  服务器用户名 -->
            <userName>root</userName>
            <!-- 服务器密码  -->
            <password>password</password>
            <!--  上传的文件,可以有多个 -->
            <uploads>
                <upload>
                    <!--  上传的文件 -->
                    <local>F:\uincall-cloud-service\deploy\callcenter.tar</local>
                    <!--  上传到服务器的目录 -->
                    <remote>/root/data/callcenter/web</remote>
                </upload>
            </uploads>
            <!-- 上传成功后执行的命令  -->
            <commands>
                <!--  添加 777 权限 -->
                <command><![CDATA[source /etc/profile; chmod 777 /root/data/callcenter/web/callcenter.tar]]></command>
                <!--  解压 -C 表示创建新的档案文件,会解压到新的目录,默认解压到根目录 / -->              
                <command><![CDATA[source /etc/profile; tar -xvf /root/data/callcenter/web/callcenter.tar -C /root/data/callcenter/web]]></command>
                <!-- 解压完删除压缩文件 -->
                <command><![CDATA[source /etc/profile; rm -rf /root/data/callcenter/web/callcenter.tar]]></command>
                <!--  刷新 nginx -->
                <command><![CDATA[source /etc/profile; nginx -s reload]]></command>
            </commands>
        </server>
    </servers>
</config>

创建 vue 打包部署 bat 文件 vue-deploy.bat,分别执行上面创建打包 vue-package.bat 压缩 zip.bat 上传部署命令 webConfig.cml

call F:\uincall-cloud-service\test-deploy\vue-package.bat
call F:\uincall-cloud-service\test-deploy\zip.bat
java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\webConfig.xml
echo 上传并解压完毕
pause

九、双击执行部署 vue-deploy.bat

成功上传并解压

以上就是java 一键部署 jar 包和 war 包的详细内容,更多关于java 部署 jar 包 war 包的资料请关注脚本之家其它相关文章!,希望大家以后多多支持脚本之家!

相关文章

  • 如何自定义hibernate validation注解示例代码

    如何自定义hibernate validation注解示例代码

    Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,下面这篇文章主要给大家介绍了关于如何自定义hibernate validation注解的相关资料,需要的朋友可以参考下
    2018-04-04
  • java.mail实现发送邮件

    java.mail实现发送邮件

    这篇文章主要为大家详细介绍了java.mail实现发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • SpringBoot实现接口校验签名调用的项目实践

    SpringBoot实现接口校验签名调用的项目实践

    在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍了SpringBoot实现接口校验签名调用的项目实践,感兴趣的可以了解一下
    2023-09-09
  • 浅析idea 添加项目依赖的两种方式

    浅析idea 添加项目依赖的两种方式

    这篇文章主要介绍了idea 添加项目依赖的两种方式,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java进行反编译生成.java文件方式(javap、jad下载安装使用)

    Java进行反编译生成.java文件方式(javap、jad下载安装使用)

    这篇文章主要介绍了Java进行反编译生成.java文件方式(javap、jad下载安装使用),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • springboot项目拦截前端请求中的特殊字符串(解决方案)

    springboot项目拦截前端请求中的特殊字符串(解决方案)

    springboot项目中,需要对前端请求数据进行过滤,拦截特殊字符,本文通过实例代码给大家分享完美解决方案,感兴趣的朋友一起看看吧
    2023-10-10
  • java实现马踏棋盘游戏

    java实现马踏棋盘游戏

    这篇文章主要为大家详细介绍了java实现马踏棋盘游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Leetcode常见链表问题及代码示例

    Leetcode常见链表问题及代码示例

    这篇文章主要介绍了Leetcode常见链表问题及代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Mybatis Plus框架项目落地实践分析总结

    Mybatis Plus框架项目落地实践分析总结

    这篇文章主要为大家介绍了Mybatis Plus框架项目落地实践分析总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 剖析Spring WebFlux反应式编程设计及工作原理

    剖析Spring WebFlux反应式编程设计及工作原理

    这篇文章主要为大家介绍了Spring WebFlux反应式编程模型工作原理的剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02

最新评论