feat: 添加 Maven Assembly 打包配置

- 添加 assembly.xml 定义标准部署目录结构
- 配置 pom.xml 使用 maven-assembly-plugin
- 打包输出到 deploy/worklog-api/ 目录
- 目录结构:bin/ lib/ conf/
- 更新 start.sh 脚本适配 lib/ 目录
- 添加 env.properties.example 和 service.properties.example 配置模板
- 更新 .gitignore 忽略打包输出目录
This commit is contained in:
zhangjf 2026-02-24 17:44:59 +08:00
parent 4b4fcf2ead
commit ae7fb43e39
6 changed files with 180 additions and 1 deletions

3
.gitignore vendored
View File

@ -58,6 +58,9 @@ src/main/resources/conf/service.properties
*.sql.backup *.sql.backup
db_backup/ db_backup/
# ==================== Assembly 打包输出 ====================
deploy/worklog-api/
# ==================== 上传文件 ==================== # ==================== 上传文件 ====================
uploads/ uploads/
files/ files/

View File

@ -7,7 +7,7 @@
APP_NAME="worklog-api" APP_NAME="worklog-api"
APP_JAR="worklog-api-1.0.0.jar" APP_JAR="worklog-api-1.0.0.jar"
APP_HOME="/opt/worklog/${APP_NAME}" APP_HOME="/opt/worklog/${APP_NAME}"
APP_JAR_PATH="${APP_HOME}/${APP_JAR}" APP_JAR_PATH="${APP_HOME}/lib/${APP_JAR}"
# 配置文件加载函数 # 配置文件加载函数
load_properties() { load_properties() {

View File

@ -124,6 +124,30 @@
</excludes> </excludes>
</configuration> </configuration>
</plugin> </plugin>
<!-- Maven Assembly Plugin - 打包为标准部署目录结构 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<outputDirectory>${project.basedir}/../deploy</outputDirectory>
<appendAssemblyId>false</appendAssemblyId>
<finalName>worklog-api</finalName>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
<id>dist</id>
<formats>
<format>dir</format>
</formats>
<!-- 不包含基础目录 -->
<includeBaseDirectory>false</includeBaseDirectory>
<!-- 输出目录名 -->
<baseDirectory>worklog-api</baseDirectory>
<fileSets>
<!-- JAR 包输出到 lib 目录 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
<excludes>
<exclude>*-sources.jar</exclude>
<exclude>*-javadoc.jar</exclude>
</excludes>
</fileSet>
<!-- 启动脚本输出到 bin 目录 -->
<fileSet>
<directory>${project.basedir}/../deploy/scripts</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>start.sh</include>
<include>stop.sh</include>
<include>restart.sh</include>
<include>status.sh</include>
</includes>
<fileMode>0755</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
<!-- 配置文件输出到 conf 目录 -->
<fileSet>
<directory>${project.basedir}/src/main/resources/conf</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>*.properties</include>
<include>*.example</include>
</includes>
</fileSet>
<!-- application.yml 输出到 conf 目录 -->
<fileSet>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>application.yml</include>
<include>bootstrap.yml</include>
<include>logback-spring.xml</include>
</includes>
</fileSet>
<!-- 配置模板文件 -->
<fileSet>
<directory>${project.basedir}/../deploy/scripts</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>*.example</include>
</includes>
</fileSet>
</fileSets>
</assembly>

View File

@ -0,0 +1,38 @@
# ====================================================
# 统一环境配置文件模板
# ====================================================
# 说明:
# 1. 复制此文件为 env.properties 并填入实际值
# 2. 此文件包含环境敏感配置,不提交到版本控制
# ====================================================
# ==================== 数据库配置 ====================
DB_HOST=localhost
DB_PORT=3306
DB_NAME=worklog
DB_USER=worklog
DB_PASSWORD=Wlog@123
# ==================== Redis 配置 ====================
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=zjf@123456
REDIS_DATABASE=0
# ==================== Nacos 配置(可选)====================
NACOS_SERVER_ADDR=localhost:8848
NACOS_NAMESPACE=worklog-dev
NACOS_GROUP=DEFAULT_GROUP
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
# ==================== JVM 配置 ====================
JVM_XMS=512m
JVM_XMX=1024m
JVM_METASPACE_SIZE=128m
JVM_MAX_METASPACE_SIZE=256m
JVM_GC_TYPE=G1GC
JVM_MAX_GC_PAUSE_MILLIS=200
# ==================== Spring 配置 ====================
SPRING_PROFILES_ACTIVE=prod

View File

@ -0,0 +1,38 @@
# ====================================================
# 服务个性化配置文件模板
# ====================================================
# 说明:
# 1. 复制此文件为 service.properties 并根据需要修改
# 2. 此文件优先级高于 env.properties
# 3. 用于覆盖默认配置或添加服务特定配置
# ====================================================
# ==================== Token 配置 ====================
# Token 有效期(秒),默认 24 小时
TOKEN_EXPIRE_TIME=86400
# Token 在 Redis 中的 Key 前缀
TOKEN_PREFIX=auth:token:
# ==================== 日志配置 ====================
# 日志内容最大长度(汉字)
LOG_MAX_CONTENT_LENGTH=2000
# ==================== 文件上传配置 ====================
# 是否启用本地文件上传
UPLOAD_ENABLED=true
# 上传文件存储路径
UPLOAD_BASE_PATH=./uploads
# 最大文件大小
UPLOAD_MAX_FILE_SIZE=10MB
# 允许的文件扩展名
UPLOAD_ALLOWED_EXTENSIONS=jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx
# ==================== 腾讯云 COS 配置(可选)====================
COS_ENABLED=false
COS_APP_ID=1308258046
COS_SECRET_ID=
COS_SECRET_KEY=
COS_BUCKET_NAME=
COS_BUCKET_HOST=
COS_REGION=ap-beijing