生成发布包
- 项目根目录上,右键选择
Run Maven→clean package -Dmaven.test.skip=true

- 在target目录找到生成的zip文件(项目名称),将此文件复制到服务器相应的文件夹。
- 这种生成方式依赖于项目根目录下的配置文件
assembly.xml,如果需要修改发布内容,请修改此配置文件。
Windows服务器发布流程
配置JDK
1.上传
从 \\192.168.1.199\lyy\java\jdk-11.0.5_windows-x64_bin.zip 拷贝到服务器
2.解压
3.配置环境变量(非必须)

4.检查JDK版本
检查JDK版本,输入命令:java -version
部署程序
1.上传
把生成的zip文件xa-wxc-server.zip 上传到服务器
2.解压
手动启动(非必须)
进行项目根目录:D:\app\xa-wxc-server
打开命令提示符,启动项目:xci.bat
按 Ctrl+C 终止程序
配置防火墙



配置为系统服务
配置为系统服务的好处是可以实现自动启动、进程异常退出后自动重启。
在Window平台配置为系统服务使用软件:AlwaysUp
下载地址:\\192.168.1.199\lyy\西安交通信息业务软件开发框架\alwaysup_10.5带注册机.rar
把xci.bat转成服务使用方法:


常见问题

在系统服务中找到名为“Interactive Services Detection”的服务,禁用即可。
Linux服务器发布
Linux服务器采用的版本:CentOS Linux release 7.5.1804 (Core)
Linux远程控制工具:\\192.168.1.199\lyy\MobaXterm
检查系统版本:cat /etc/redhat-release 查看内存:free -g 查看磁盘空间:df -h Vim操作文档:https://www.cnblogs.com/junwen5599/p/9996873.html
配置JDK
1.上传
从 \\192.168.1.199\lyy\java\jdk-11.0.5_linux-x64_bin.tar.gz 拷贝到服务器目录 /usr/local/jdk-11.0.5_linux-x64_bin.tar.gz
2.解压
切换目录到:/usr/local
解压命令:tar -xzvf jdk-11.0.5_linux-x64_bin.tar.gz
3.配置环境变量(非必须)
打开文件:vim /etc/profile
移动到文件末尾,添加以下内容:
#设置JAVA_HOME的路径export JAVA_HOME=/usr/local/jdk-11.0.5export PATH=${JAVA_HOME}/bin:$PATH
4.检查JDK版本
重新检查JDK版本,输入命令:java -version
部署程序
1.上传
把生成的zip文件xa-wxc-server.zip 上传到服务器:/usr/local/app/
2.解压
把目录切换到/usr/local/app/,执行解压命令:unzip xa-wxc-server.zip
3.设置脚本权限
进入项目根目录:/usr/local/app/xa-wxc-server/
给脚本添加执行权限:chmod +x ./xci.sh
手动启动(非必须)
进入项目根目录:/usr/local/app/xa-wxc-server/
启动:./xci.sh start
停止:./xci.sh stop
重启:./xci.sh restart
查看运行状态:./xci.sh status
不同的项目启动脚本startup.sh文件内容需要进行修改: 第9行中 FILE_NAME=xa-wxc-server,等于号后面的内容换成自己项目的名称 第45、61行中修改jvm内存参数
如果执行脚本以下错误:#/bin/sh^M:损坏的解释器: 没有那个文件或目录 原因是:脚本文件保存时使用了DOS格式,不要在 Windows下编辑脚本文件,否则经常会遇到这种问题。可以用vim打开,用:set ff=unix转换。 进入vim,执行:set ff=unix,之后执行:wq即可
配置防火墙
- 列出所有已打开的端口:
firewall-cmd --list-port - 打开指定的端口:
firewall-cmd --zone=public --add-port=7011/tcp --permanent(打开7011端口,如果要打开其他端口,请修改为指定的端口) - 重新加载防火墙配置使其生效:
firewall-cmd --reload
配置为系统服务
配置为系统服务的好处是可以实现自动启动、进程异常退出后自动重启,配置系统服务按下面的步骤:
1.编写服务脚本
服务脚本一般以xxx.service命名,其中xxx表示服务名称。本项目使用:xa-wxc-server.service
xa-wxc-server.service
正式使用时必须把#的注释去掉,否则会出现错误
[Unit]Description=xa-wxc-server.service #服务描述After=network.target #表示需要在某些服务启动之后启动,After和Before字段只涉及启动顺序,不涉及依赖关系[Service]Type=forking #以 fork 方式从父进程创建子进程,创建后父进程会立即退出ExecStart=/app/xci.sh service #启动当前服务的命令RestartSec=5 #自动重启当前服务间隔的秒数Restart=always #定义何种情况 Systemd 会自动重启当前服务;always:不管什么退出原因,都会重启(除了systemctl stop)PrivateTmp=true #表示给服务分配独立的临时空间SuccessExitStatus=143 #143是spring-boot服务被stop的时候的status code,如果不加上SuccessExitStatus=143,stop服务的时候会变成failed状态,而不是inactive状态。StartLimitInterval=0 #无限次重启,默认是10秒内如果重启超过5次则不再重启,设置为0表示不限次数重启[Install]WantedBy=multi-user.target #表示多用户
2.复制服务脚本到系统目录
服务脚本编写完成后,可放到下面的位置(二选一):
/usr/lib/systemd/system #系统服务,开机不需要登录就能运行的程序(可以用于开机自启)/usr/lib/systemd/user #用户服务,需要登录后才能运行程序
3.服务操作命令
#启动systemctl start xa-wxc-server.service#停止systemctl stop xa-wxc-server.service#重启systemctl restart xa-wxc-server.service#状态systemctl status xa-wxc-server.service#以完整的日志消息显示服务状态systemctl status -l xa-wxc-server.service#开机自启systemctl enable xa-wxc-server.service#取消开机自启systemctl disable xa-wxc-server.service#是否加入自启动systemctl is-enabled xa-wxc-server.servic#重新加载服务脚本(当服务脚本修改后,调用此命令重新加载)systemctl daemon-reload
其他内容
另一种开机自动启动(非必须)
- 打开
vim /etc/rc.d/rc.local文件 - 在末尾增加如下内容:
/usr/local/app/xa-wxc-server/xci.sh start - 给文件
/etc/rc.d/rc.local增加执行权限:chmod +x /etc/rc.d/rc.local - 重启进行测试
下载安装包目录
位于程序主目录下:/res/upgrade/ ,所有的补丁包也会自动上传到此目录。

xci.sh(程序启动脚本)
#!/bin/sh## java env#设置Java环境变量export JAVA_HOME=/usr/local/jdk-11.0.5export PATH=${JAVA_HOME}/bin:$PATH#设置启动jar文件名称FILE_NAME=xa-wxc-server#设置启动配置文件PROFILE=release#jar文件名JAR_NAME=${FILE_NAME}\.jar#shell脚本所在目录APP_WORK_PATH=$(dirname $(readlink -f $0))#控制台输出文件名CONSOLE_NAME="${FILE_NAME}.console.log"#使用说明,用来提示输入参数usage() {echo "xci.sh [start|stop|restart|status|service]"exit 1}#检查程序是否在运行is_exist(){pid=`ps -ef|grep ${JAR_NAME}|grep -v grep|awk '{print $2}' `#如果不存在返回1,存在返回0if [[ -z "${pid}" ]]; thenreturn 1elsereturn 0fi}#启动方法start(){is_existif [[ $? -eq "0" ]]; thenecho ">>> ${JAR_NAME} 已运行 pid=${pid} <<<"else#切换到shell脚本所在目录cd ${APP_WORK_PATH}nohup java -jar -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx512m -XX:MaxGCPauseMillis=500 --illegal-access=deny ${JAR_NAME} --spring.profiles.active=${PROFILE} >${CONSOLE_NAME} 2>&1 &sleep 2#echo $! > $PIDecho ">>> $JAR_NAME 正在启动 pid=$! <<<"cd ~tail -f "${APP_WORK_PATH}/${CONSOLE_NAME}"fi}#启动服务service(){is_existif [[ $? -eq "0" ]]; thenecho ">>> ${JAR_NAME} 已运行 pid=${pid} <<<"elsecd ${APP_WORK_PATH}nohup java -jar -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx512m -XX:MaxGCPauseMillis=500 --illegal-access=deny ${JAR_NAME} --spring.profiles.active=${PROFILE} >${CONSOLE_NAME} 2>&1 &fi}#停止方法stop(){is_existif [[ $? -eq "0" ]]; thenecho ">>> 正在停止进程 pid=$pid <<<"kill -9 ${pid}sleep 2echo ">>> $JAR_NAME 已停止 <<<"elseecho ">>> ${JAR_NAME} 未运行 <<<"fi}#运行状态status(){is_existif [[ $? -eq "0" ]]; thenecho ">>> ${JAR_NAME} 已运行 pid=${pid} <<<"elseecho ">>> ${JAR_NAME} 未运行 <<<"fi}#重启restart(){stopstart}#根据输入参数,选择执行对应方法,不输入则执行使用说明case "$1" in"start")start;;"service")service;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;esacexit 0
xa-wxc-server.service(服务脚本)
[Unit]Description=xa-wxc-server.serviceAfter=network.target[Service]Type=forkingExecStart=/usr/local/app/xa-wxc-server/xci.sh serviceRestartSec=5Restart=alwaysPrivateTmp=trueSuccessExitStatus=143StartLimitInterval=0[Install]WantedBy=multi-user.target
logback-spring-release.xml(日志配置文件)
<?xml version="1.0" encoding="UTF-8"?><configuration><!--说明:1、日志级别及文件日志记录采用分级记录,级别与日志文件名相对应,不同级别的日志信息记录到不同的日志文件中例如:error级别记录到log_error_xxx.log或log_error.log(该文件为当前记录的日志文件),而log_error_xxx.log为归档日志,日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名例如log-level-2013-12-21.0.log其它级别的日志也是如此。2、文件路径若开发、测试用,在Eclipse中运行项目,则到Eclipse的安装路径查找logs文件夹,以相对路径../logs。若部署到Tomcat下,则在Tomcat下的logs文件中3、AppenderFILEERROR对应error级别,文件名以log-error-xxx.log形式命名FILEWARN对应warn级别,文件名以log-warn-xxx.log形式命名FILEINFO对应info级别,文件名以log-info-xxx.log形式命名FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名stdout将日志信息输出到控制上,为方便开发测试使用--><contextName>xci-platform-logger</contextName><property name="LOG_PATH" value="./"/><!--设置系统日志目录--><property name="APPDIR" value="logs"/><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><property name="CONSOLE_LOG_PATTERN"value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><property name="FILE_LOG_PATTERN"value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!-- 错误日志记录器 --><appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_PATH}/${APPDIR}/error.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${LOG_PATH}/${APPDIR}/error/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>--><charset>utf-8</charset></encoder><!-- 此日志文件只记录error级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 警告日志记录器 --><appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_PATH}/${APPDIR}/warn.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${LOG_PATH}/${APPDIR}/warn/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录 warn 级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 信息日志记录器 --><appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_PATH}/${APPDIR}/info.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${LOG_PATH}/${APPDIR}/info/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录info级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- SQL语句日志记录器 --><appender name="SQLFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_PATH}/${APPDIR}/sql.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${LOG_PATH}/${APPDIR}/sql/sql-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录debug级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>debug</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- SQL语句日志记录器 --><appender name="WebLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_PATH}/${APPDIR}/web.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${LOG_PATH}/${APPDIR}/sql/web-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录debug级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 控制台日志记录器 --><appender name="Console" class="ch.qos.logback.core.ConsoleAppender"><!--encoder 默认配置为PatternLayoutEncoder--><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--><!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">--><!-- <level>debug</level>--><!--</filter>--></appender><!--TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF, INHERITED--><!--addtivity: 是否向上级loger传递打印信息。默认是true。--><logger name="org.springframework" level="info"/><logger name="org.hibernate" level="info"/><logger name="net.sf.ehcache" level="info"/><logger name="net.sf.ehcache.statistics" level="info"/><logger name="springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator" level="warn"/><logger name="org.springframework.cache" level="debug"/><logger name="org.quartz.core" level="warn"/><logger name="org.springframework.scheduling.quartz" level="warn"/><logger name="com.xci" level="info"/><!--<logger name="springfox.documentation.spring.web" level="warn"/><logger name="org.springframework.scheduling" level="warn"/><logger name="org.springframework.web.context" level="warn"/><logger name="org.apache.coyote.http11" level="warn"/><logger name="org.apache.catalina" level="warn"/><logger name="org.springframework.context.support" level="warn"/><logger name="org.springframework.web.servlet" level="warn"/>--><logger name="com.xci.sys.dao" level="debug" additivity="false"><appender-ref ref="SQLFile"/></logger><logger name="com.xci.xa.wxc.server.modules.sch.dao" level="debug" additivity="false"><appender-ref ref="SQLFile"/></logger><logger name="com.xci.xa.wxc.server.modules.wx.dao" level="debug" additivity="false"><appender-ref ref="SQLFile"/></logger><!--对于类路径以 com.example.logback 开头的Logger,输出级别设置为warn--><!--这个logger没有指定appender,它会继承root节点中定义的那些appender--><!--<logger tableName="com.example.logback" level="warn"/>--><!--由于这个logger自动继承了root的appender,root中已经有stdout的appender了,自己这边又引入了stdout的appender--><!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况--><!--additivity表示要不要使用rootLogger配置的appender进行输出--><!--<logger tableName="mytest" level="info" additivity="false">--><!-- <appender-ref ref="stdout"/>--><!--</logger>--><!--由于设置了 additivity="false" ,所以输出时不会使用rootLogger的appender--><!--但是这个logger本身又没有配置appender,所以使用这个logger输出日志的话就不会输出到任何地方--><!--<logger tableName="mytest2" level="info" additivity="false"/>--><!--root是默认的logger--><!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 --><root level="info"><!--生产环境将请打开注释--><appender-ref ref="FILEERROR"/><appender-ref ref="FILEWARN"/><appender-ref ref="FILEINFO"/><!-- 生产环境将请 Console 去掉 --><appender-ref ref="Console"/></root></configuration>
application-release.yml(应用程序配置文件)
server:port: 6070 #服务器端口logging:config: file:config/logback-spring-release.xml #日志配置文件路径spring:datasource:driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriverurl: jdbc:sqlserver://192.168.1.226:1433;DatabaseName=xa_wxc_managementhikari:username: sapassword: saservlet:multipart:max-request-size: 200MBmax-file-size: 200MBswagger:basic:password: xcienable: trueusername: xcixci:web:app-id: 123upload:allow-max-size: 870400root: /resallow-extension: gif, jpg, jpeg, png, bmp, flv, mp3, mp4, wav, wma, avi, mpg,rmvb,zip, rar, doc, docx, xls, xlsx, ppt, pptx, txt, pdf,repx,json,xmlapi:valid-timestamp: falsetimestamp-offset: 120response-body-encrypt: falseresolving-ip-location: truerequest-body-decrypt: falseswagger:enabled: true
yml语法规则
- k: v 表示键值对关系,冒号后面必须有一个空格
- 使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的
- 大小写敏感
- 缩进时不允许使用Tab键,只允许使用空格。
- 松散表示,java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。
assembly.xml(打包配置文件)
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"><id>1.0</id><formats><!--打包的文件格式,也可以有:dir war zip--><format>zip</format></formats><!--压缩包下是否生成和项目名相同的根目录--><includeBaseDirectory>true</includeBaseDirectory><dependencySets><dependencySet><outputDirectory>lib</outputDirectory><useProjectArtifact>false</useProjectArtifact><!--<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping>--></dependencySet></dependencySets><fileSets><fileSet><directory>target</directory><outputDirectory/><includes><include>*.jar</include></includes></fileSet><fileSet><!--将bin目录下的文件全部复制到根目录--><directory>bin</directory><outputDirectory/></fileSet><fileSet><!--将res/report复制到输出目录下面的res/report--><directory>res/report</directory><outputDirectory>res/report</outputDirectory></fileSet><fileSet><!--将res/app复制到输出目录下面的res/app--><directory>res/app</directory><outputDirectory>res/app</outputDirectory></fileSet><fileSet><!--将res/app复制到输出目录下面的res/setting--><directory>res/setting</directory><outputDirectory>res/setting</outputDirectory></fileSet><fileSet><!--将target/classes目录下面的application-release.yml和logback-spring-release.xml复制到输出目录的config目录--><directory>target/classes</directory><outputDirectory>config</outputDirectory><includes><include>application-release.yml</include><include>logback-spring-release.xml</include><!--如果需要包含其他文件请写入--><!--<include>*.properties</include>--></includes></fileSet><fileSet><!--将target/classes目录下面的 static 子目录下面的所有文件都复制到输入目录下的 static/--><directory>target/classes</directory><outputDirectory/><includes><include>static/**</include></includes></fileSet><fileSet><!--将target/classes目录下面的 templates 子目录下面的所有文件都复制到输入目录下的 templates/--><directory>target/classes</directory><outputDirectory/><includes><include>templates/**</include></includes></fileSet></fileSets></assembly>
