ci: 👷 调整项目打包结构,分离依赖、配置文件

1.调整 Spring Boot 配置文件到 config 目录
2.移除 Maven Profiles 配置
3.调整项目打包结构,分离依赖、配置文件。如无依赖调整,部署时仅需拷贝程序包,且更方便进行配置修改
4.调整后的项目打包结构,更贴合部署安装程序结构,例如:Tomcat 安装包、Maven 安装包
5.建议在 bin 目录上一级执行程序,以使日志文件能正确生成在 logs 目录下,参考 Dockerfile
This commit is contained in:
2023-09-07 00:41:18 +08:00
parent 5c9e6639db
commit e679abfccc
9 changed files with 106 additions and 83 deletions

View File

@@ -0,0 +1,281 @@
--- ### 项目配置
project:
# 名称
name: ContiNew Admin
# 应用名称
appName: continew-admin
# 版本
version: 1.2.0-SNAPSHOT
# 描述
description: ContiNew Admin 中后台管理框架/脚手架Continue New Admin持续以最新流行技术栈构建拥抱变化迭代优化。
# URL
url: https://cnadmin.charles7c.top
# 基本包
basePackage: top.charles7c.cnadmin
## 作者信息配置
author:
name: Charles7c
email: charles7c@126.com
url: https://blog.charles7c.top/about/me
## 许可协议信息配置
license:
name: Apache-2.0
url: https://github.com/Charles7c/continew-admin/blob/dev/LICENSE
# 是否本地解析 IP 归属地
ipAddrLocalParseEnabled: true
--- ### 日志配置(重叠部分,优先级高于 logback-spring.xml 中的配置)
logging:
config: classpath:logback-spring.xml
## 系统日志配置
system:
# 是否启用系统日志
enabled: true
# 是否记录内网 IP 操作
includeInnerIp: true
# 排除请求方式
#excludeMethods:
# - GET
# 脱敏字段
desensitizeFields:
- password
- Authorization
--- ### 接口文档配置
springdoc:
# 设置对象型参数的展示形式(设为 true 表示将对象型参数平展开,即对象内的属性直接作为参数展示而不是嵌套在对象内,默认为 false
# 如果不添加该全局配置,可以在需要如此处理的对象参数类上使用 @ParameterObject
default-flat-param-object: true
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
show-extensions: true
api-docs:
enabled: ${springdoc.swagger-ui.enabled}
path: /v3/api-docs
group-configs:
- group: 'all'
paths-to-match: '/**'
packages-to-scan: ${project.basePackage}.webapi.controller
- group: 'auth'
display-name: '系统认证'
paths-to-match: '/auth/**'
packages-to-scan: ${project.basePackage}.webapi.controller.auth
- group: 'common'
display-name: '通用接口'
paths-to-match:
- '/common/**'
- '/dashboard/**'
packages-to-scan: ${project.basePackage}.webapi.controller.common
- group: 'system'
display-name: '系统管理'
paths-to-match: '/system/**'
packages-to-scan: ${project.basePackage}.webapi.controller.system
- group: 'tool'
display-name: '系统工具'
paths-to-match: '/tool/**'
packages-to-scan: ${project.basePackage}.webapi.controller.tool
- group: 'monitor'
display-name: '系统监控'
paths-to-match: '/monitor/**'
packages-to-scan: ${project.basePackage}.webapi.controller.monitor
## 接口文档增强配置
knife4j:
enable: true
setting:
language: zh_cn
swagger-model-name: 实体类列表
# 是否显示默认的 footer默认 true 显示)
enable-footer: false
# 是否自定义 footer默认 false 非自定义)
enable-footer-custom: true
# 自定义 footer 内容,支持 Markdown 语法
footer-custom-content: 'Copyright © 2022-present [${project.author.name}](${project.author.url}) ⋅ [${project.name}](${project.url}) v${project.version}'
--- ### Sa-Token 配置
sa-token:
# token 名称(同时也是 cookie 名称)
token-name: Authorization
# token 前缀(例如填写 Bearer 实际传参 Authorization: Bearer xxxx-xxxx-xxxx-xxxx
token-prefix: Bearer
# token 有效期(单位:秒,默认 30 天,-1 代表永不过期)
timeout: 86400
# token 最低活跃频率(单位:秒,默认 -1代表不限制永不冻结。如果 token 超过此时间没有访问系统就会被冻结)
active-timeout: 1800
# 是否打开自动续签(如果此值为 true框架会在每次直接或间接调用 getLoginId() 时进行一次过期检查与续签操作)
auto-renew: true
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token为 true 时所有登录共用一个 token为 false 时每次登录新建一个 token
is-share: false
# 是否尝试从 header 里读取 Token
is-read-header: true
# 是否尝试从 cookie 里读取 Token此值为 false 后StpUtil.login(id) 登录时也不会再往前端注入 Cookie适合前后端分离模式
is-read-cookie: false
# 是否输出操作日志
is-log: false
# JWT 秘钥
jwt-secret-key: asdasdasifhueuiwyurfewbfjsdafjk
--- ### MyBatis Plus 配置
mybatis-plus:
# Mapper 接口扫描包配置(该配置为自定义配置,非 MP 配置,不支持多包,如有需要可通过注解配置或提升扫描包层级)
# 该配置目前的唯一使用场景为:@MapperScan("${mybatis-plus.mapper-package}")
mapper-package: ${project.basePackage}.**.mapper
# Mapper XML 文件目录配置
mapper-locations: classpath*:/mapper/**/*Mapper.xml
# 类型别名扫描包配置
type-aliases-package: ${project.basePackage}.**.model
check-config-location: true
configuration:
# 自动驼峰命名规则camel case映射
map-underscore-to-camel-case: true
# MyBatis 自动映射策略
# NONE不启用 PARTIAL只对非嵌套 resultMap 自动映射 FULL对所有 resultMap 自动映射
auto-mapping-behavior: PARTIAL
# MyBatis 自动映射时未知列或未知属性处理策略
# NONE不做处理 WARNING打印相关警告 FAILING抛出异常和详细信息
auto-mapping-unknown-column-behavior: NONE
# 日志配置
# 默认org.apache.ibatis.logging.slf4j.Slf4jImpl
# 更详细会有性能损耗org.apache.ibatis.logging.stdout.StdOutImpl
# 关闭(可单纯使用 p6spy 分析org.apache.ibatis.logging.nologging.NoLoggingImpl
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
banner: true
db-config:
# 主键类型(默认 assign_id 表示自行赋值)
# auto 代表使用数据库自增策略(需要在表中设置好自增约束)
id-type: AUTO
# 逻辑删除字段
logic-delete-field: isDeleted
# 逻辑删除全局值(默认 1表示已删除
logic-delete-value: 1
# 逻辑未删除全局值(默认 0表示未删除
logic-not-delete-value: 0
--- ### 服务器配置
server:
servlet:
# 应用访问路径
context-path: /
## Undertow 服务器配置
undertow:
# HTTP POST 请求内容的大小上限(默认 -1 不限制)
max-http-post-size: -1
# 以下的配置会影响 buffer这些 buffer 会用于服务器连接的 IO 操作,有点类似 Netty 的池化内存管理
# 每块 buffer的空间大小越小的空间被利用越充分不要设置太大以免影响其他应用合适即可
buffer-size: 512
# 是否分配的直接内存NIO 直接分配的堆外内存)
direct-buffers: true
threads:
# 设置 IO 线程数,它主要执行非阻塞的任务,它们会负责多个连接(默认每个 CPU 核心一个线程)
io: 8
# 阻塞任务线程池,当执行类似 Servlet 请求阻塞操作Undertow 会从这个线程池中取得线程(它的值设置取决于系统的负载)
worker: 256
--- ### Spring 配置
spring:
application:
name: ${project.appName}
## 环境配置
profiles:
# 启用的环境
active: dev
main:
# 允许定义重名的 bean 对象覆盖原有的 bean
allow-bean-definition-overriding: true
# 允许循环依赖
allow-circular-references: true
## MVC 配置
mvc:
format:
# 日期格式化(针对 java.util.Date
date-time: yyyy-MM-dd HH:mm:ss
## JSON 配置
jackson:
# 时区配置
time-zone: GMT+8
# 日期格式化(针对 java.util.Date
date-format: yyyy-MM-dd HH:mm:ss
# 序列化配置Bean -> JSON
serialization:
# 允许序列化无属性的 Bean
FAIL_ON_EMPTY_BEANS: false
# 反序列化配置JSON -> Bean
deserialization:
# 允许反序列化不存在的属性
FAIL_ON_UNKNOWN_PROPERTIES: false
--- ### 健康检查配置
management.health:
mail:
# 关闭邮箱健康检查(邮箱配置错误或邮箱服务器不可用时,健康检查会报错)
enabled: false
--- ### 线程池配置
thread-pool:
# 是否启用线程池
enabled: true
# 队列容量
queueCapacity: 128
# 活跃时间
keepAliveSeconds: 300
--- ### 代码生成器配置
generator:
# 排除数据表
excludeTables:
- DATABASECHANGELOG
- DATABASECHANGELOGLOCK
- gen_config
- gen_field_config
# 模板配置
templateConfigs:
DO:
# 模板路径
templatePath: generator/Entity.ftl
# 包名称
packageName: model.entity
# 排除字段
excludeFields:
- id
- createUser
- createTime
- updateUser
- updateTime
Query:
templatePath: generator/Query.ftl
packageName: model.query
Request:
templatePath: generator/Request.ftl
packageName: model.request
VO:
templatePath: generator/VO.ftl
packageName: model.vo
excludeFields:
- id
- createUser
- createTime
DetailVO:
templatePath: generator/DetailVO.ftl
packageName: model.vo
excludeFields:
- id
- createUser
- createTime
- updateUser
- updateTime
Mapper:
templatePath: generator/Mapper.ftl
packageName: mapper
Service:
templatePath: generator/Service.ftl
packageName: service
ServiceImpl:
templatePath: generator/ServiceImpl.ftl
packageName: service.impl
Controller:
templatePath: generator/Controller.ftl
packageName: controller