xyc
昨天 2f3c2d2851f7693357feb9e62a56a64670755c6a
package-deploy.py
@@ -2,16 +2,21 @@
"""TrafficAudit 一键打包脚本:前端构建 -> 内嵌进后端 jar -> 组装部署包 -> 打 zip
用法:python package-deploy.py [--no-build]
"""
import io, os, sys, shutil, zipfile, subprocess, datetime
import io, os, sys, shutil, zipfile, subprocess, datetime, xml.etree.ElementTree as ET
ROOT = os.path.dirname(os.path.abspath(__file__))
WEB = os.path.join(ROOT, "traffic-audit-web")
SERVER = os.path.join(ROOT, "traffic-audit-server")
STATIC = os.path.join(SERVER, "src", "main", "resources", "static")
_pom_tree = ET.parse(os.path.join(SERVER, "pom.xml"))
_pom_ns = {"m": "http://maven.apache.org/POM/4.0.0"}
PRODUCT_VERSION = (_pom_tree.getroot().findtext("m:version", namespaces=_pom_ns) or "").strip()
if not PRODUCT_VERSION:
    raise SystemExit("Missing <version> in traffic-audit-server/pom.xml")
STAMP = datetime.datetime.now().strftime("%Y%m%d")
STAGE = os.path.join(ROOT, "deploy", "traffic-audit-deploy-" + STAMP)
ZIP = os.path.join(ROOT, "traffic-audit-deploy-" + STAMP + ".zip")
JAR_NAME = "traffic-audit-server-1.0.0-SNAPSHOT.jar"
STAGE = os.path.join(ROOT, "deploy", "traffic-audit-deploy-" + STAMP + "-v" + PRODUCT_VERSION)
ZIP = os.path.join(ROOT, "traffic-audit-deploy-" + STAMP + "-v" + PRODUCT_VERSION + ".zip")
JAR_NAME = "traffic-audit-server.jar"
SKIP_DOC_DIRS = {"ai_demo", "usage_screenshots", "功能测试报告", "工作日结"}
def rmtree_force(path):
@@ -97,7 +102,7 @@
    io.open(os.path.join(be, "start-backend.cmd"), "w", encoding="utf-8", newline="\r\n").write(START_CMD)
    io.open(os.path.join(be, "start-backend.sh"), "w", encoding="utf-8", newline="\n").write(START_SH)
    io.open(os.path.join(STAGE, "frontend", "nginx.conf.example"), "w", encoding="utf-8", newline="\n").write(NGINX)
    io.open(os.path.join(STAGE, "README-部署说明.txt"), "w", encoding="utf-8", newline="\r\n").write(README)
    io.open(os.path.join(STAGE, "README-部署说明.txt"), "w", encoding="utf-8", newline="\r\n").write(README.replace("{version}", PRODUCT_VERSION))
    print("[5/6] 打 zip ...")
    if os.path.isfile(ZIP):
@@ -183,14 +188,14 @@
echo  前端已内嵌,直接访问 8090 即可(不需要 nginx)
echo  日志显示在本窗口,关闭窗口即停止服务
echo ============================================
java -jar traffic-audit-server-1.0.0-SNAPSHOT.jar
java -jar traffic-audit-server.jar
pause
"""
START_SH = u"""#!/bin/sh
cd "$(dirname "$0")" || exit 1
echo "TrafficAudit 启动中:http://localhost:8090 (Ctrl+C 停止)"
java -jar traffic-audit-server-1.0.0-SNAPSHOT.jar 2>&1 | tee app.log
java -jar traffic-audit-server.jar 2>&1 | tee app.log
"""
NGINX = u"""# 前端 nginx 配置示例(只有在不想用「jar 内嵌前端」时才需要)
@@ -210,12 +215,12 @@
}
"""
README = u"""TrafficAudit 交通货运统计审核系统 —— 部署包({stamp})
README = u"""TrafficAudit 交通货运统计审核系统 —— 部署包({stamp},版本 v{version})
========================================================
【目录结构】
  backend/
    traffic-audit-server-1.0.0-SNAPSHOT.jar  后端程序(含全部依赖,**已内嵌前端**)
    traffic-audit-server.jar                 后端程序(含全部依赖,**已内嵌前端**,固定文件名)
    docs/                                    报表模板与运行数据目录(必需,勿删)
    application.yml                          外部配置(改这里即可,无需重新打包)
    start-backend.cmd / start-backend.sh     启动脚本