java 一键部署 jar 包和 war 包

目录
  • java 一键部署 jar 包和 war 包
    • 一、创建打包命令 gateway-package.bat
    • 二、创建启动文件 gateway.xml
    • 三、一键打包并部署脚本 gateway-deploy.bat 文件内容
    • 四、双击打包部署 bat 文件 gateway-deploy.bat
    • 五、执行 vue 打包并且上传部署
    • 六、安装 7z 压缩工具并配置系统环境变量
    • 七、创建上传部署文件 webConfig.xml
    • 九、双击执行部署 vue-deploy.bat

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 包的资料请关注我们其它相关文章!,希望大家以后多多支持我们!

(0)

相关推荐

  • 解决java项目jar打包后读取文件失败的问题

    java项目jar打包后读取文件失败 在本地项目读取文件时 this.getClass().getClassLoader().getResource("").getPath()+fileName this.getClass().getResource("/filename").getPath() 都是可以成功的 但是jar打包后上面方式读取文件时 会变成 jar!filename 这样的形式去读取文件,这样是读取不到文件的 可以使用 Test.class.getRe

  • Java 使用反射调用jar包中的类方式

    下面讲展示的是从image.jar包中调用image.Buddy类的方法. public class Main { public static void main(String[] args) { try { // 两种方式都可以 URL url = new File("/Users/wuchen/Documents/IntelliJIDEA/Applet/out/production/Applet/image.jar").toURI().toURL(); // URL url = n

  • Java使用JSONObject需要的6个jar包下载地址

    JSONObject所必需的6个jar包: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging.jar ezmorph-1.0.3.jar json-lib-2.1-jdk15.jar 网上有很多的下载jar包地址,但是我个人比较喜欢的是Maven网站,里面一般提供了各种版本. 这个网址是maven仓库的国内镜像地址: http://mvnrepository.c

  • Java 通过mave命令下载jar包的示例代码

    之前一直都是使用的idea,创建maven工程进行jar包导入操作,居然接到了通过java 代码导入jar包的需求,满脸的懵逼,好在功夫不负有心人,最终将其拿来了, 现在这里记录一下,方便以后学习使用: 本次采用的方案是基于pom.xml模板的形式+maven命令的方式,到仓库下载jar报错,示例代码如下: 项目依赖: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</

  • Java jar打包工具使用方法步骤解析

    java的jar是一个打包工具,用于将我们编译后的class文件打包起来,这里面主要是举一个例子用来说明这个工具的使用. 在C盘下的temp文件夹下面: 有一个com.pack.surfront的package 这个package下面有一些已经class文件如:Test1.class,Test2.class,Test3.class,其中Test1.class下有一个可执行文件. 我们打开cmd,然后cd temp到temp文件夹下面,因为com.pack.surfront是包路径,不需要再进去然

  • idea打包java可执行jar包的实现步骤

    1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dependencies... 3, Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个 4,如下图,设置 META-INF/MANIFEST.MF !!!!!切记,不能用默认的(起码我用默认的是不成功的)!!!!! 6,选中你这个项目的根目录,一定要放在根目录下 7,设置完是这样子的,关于

  • windows定时器配置执行java jar文件的方法详解

    ##创建测试类 新建Java工程创建测试类如下代码:(创建文件验证定时器是否执行) package makeFile; import java.io.File; import java.io.IOException; public class MakeFlie { public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("D:/myFile.txt"

  • java使用jar包生成二维码的示例代码

    使用java进行二维码的生成与读取使用到了谷歌的zxing.jar 第一步 导入,maven依赖或者下载指定jar包 <!-- https://mvnrepository.com/artifact/com.google.zxing/javase --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version

  • Java(TM) Platform SE binary 打开jar文件的操作

    直接用javaw.exe想打开aspectj-1.9.4.jar安装aspectJ 选Java™ Platform SE binary提示JVM虚拟机打不开 可能是java的配置出了点问题,这里不想重新去配置java,直接用cmd用指令打开 成功打开AspectJ安装程序开始安装 补充:Java(TM) pPlatform SE binary已停止工作(解决办法) 问题描述: Java™ pPlatform SE binary已停止工作解决办法 问题事件名称:APPCRASH 早起清理了一下电脑

  • 基于Java的打包jar、war、ear包的作用与区别详解

    以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果.除jar以外对于J2EE来说还有war和ear.区别见下表: JAR WAR EAR 英文 Java Archive file Web Archive file Enterprise Archive file 包含内容 class.properties文件,是文件封装的最小单元:包含Java类的普通库.资源(resources).辅助文件(auxi

  • Java运行Jar包内存配置的操作

    如下: java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar 说明: 1.堆内存: 最小1024M,最大1536M.(对象使用的内存) 2.永久内存: 最小128M,最大256M.(类使用的内存,PermGen) 补充:JAVA -JAR 运行SPRINGBOOT项目时内存设置 java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其

  • windows下java -jar 后台运行以及杀死后台进程的操作

    在你的jar文件当前目录中建立一个bat文件: 内容是:注意文件名要对应 @echo off START "commandServer" javaw -jar command-0.0.1-SNAPSHOT.jar 之后双击bat文件就能后台启动jar包啦 杀死后台进程 首先执行命令 (你要知道你运行的jar文件的端口号) netstat -aon | findstr "9998" 可以看到PID为6452 然后在执行: tasklist|findstr "

  • 关于Idea创建Java项目并引入lombok包的问题(lombok.jar包免费下载)

    一:场景 使用Idea工具创建java项目(非spring项目)时,已经安装了lombok插件却无法使用其中的注解 二: 原因 原因一: idea创建的项目默认是不支持注解的,需要手动勾选支持注解的选项 具体操作: File  >> setting >> 搜索Compiler >> 点击 Annotation processors >> 勾选 Enable processing >> 点击OK(下面有具体的图形操作流程) 原因二: idea安装后

随机推荐