war部署
打包方式
修改pom.xml
....
<name>ms-mcms</name>
<!-- 打包war包 -->
<packaging>war</packaging>
....
mvn clean package
部署
linux
1.将打包好的war包放进Tomcat的webapps下
2.修改Tomcat bin 目录下的catalina.sh,添加一行修改语言和时区的脚本
# OS specific support. $var _must_ be set to either true or false.
export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/shanghai -Duser.language=zh -Duser.region=CN"
3.执行bin 目录下的startup.sh启动项目
Tip
注意:在SpringBoot3版本以上需要Tomcat版本10以上
window
1.将打包好的war包放进Tomcat

Important
如果本地开发没有使用项目名context-path,且没有项目名需求,需要把xxx.war重命名为ROOT.war,并删除ROOT文件夹,否则会多一层访问路径导致资源404
2.点击startup.bat启动项目,默认生成的日志文件mcms.log

Important
如果是通过ningx+tomcat的方式部署,需要修改
tomcat的server.xml的Host的域名,否则会出现静态化之后,页面会出现错误的url地址127.0.0.1,application.yml 里面配置的端口必须与 tomcat(或其他容器)端口一致
国产中间件
国产中间件通常是打包war包的方式部署,开发者直接根据pom.xml的注释引导信息导出war包,
Tip
第一次部署war成功之后,以后更新服务器就直接通过文件覆盖的方式更新对应的文件夹,不需要每次都部署war包的方式,否则会出现文件被覆盖的情况;如果非得要每次war部署,那建议部署前先把静态文件先备份一下。等war部署好后再覆盖还原这些进来文件夹。
重点!!!
Warning
如果部署失败第一时间连接中间件供应商,基本都有正确的解答,必要的时候请求远程调试;
包加载顺序(老版本之前会打包有ms-mcms-co的包就采用这个顺序配置,还有使用站群插件也需要这样配置)
因为war包部署时候存在一个jar包加载顺序的问题,需要手动修改lib目录下的jar包名称,主要目的控制jar包在容器中的加载顺序,让jar包中重写的代码生效,只需要在jar包文件名称前面增加a、b、c字符来调整顺序即可,具体的根据pom.xml的顺序一致;

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- 排除多个需要解压的 JAR 包 -->
<packagingExcludes>
WEB-INF/lib/ms-site.jar,
WEB-INF/lib/ms-module-a.jar,
WEB-INF/lib/ms-module-b.jar
</packagingExcludes>
<overlays>
<!-- 按顺序定义 overlays,后面的会覆盖前面的 -->
<!-- 第一个 overlay:基础模块(优先级最低) -->
<overlay>
<groupId>net.mingsoft</groupId>
<artifactId>ms-module-a</artifactId>
<type>jar</type>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.class</include>
</includes>
</overlay>
<!-- 第二个 overlay:中间模块 -->
<overlay>
<groupId>net.mingsoft</groupId>
<artifactId>ms-module-b</artifactId>
<type>jar</type>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.class</include>
</includes>
</overlay>
<!-- 第三个 overlay:ms-site(优先级最高,会覆盖前面的) -->
<overlay>
<groupId>net.mingsoft</groupId>
<artifactId>ms-site</artifactId>
<type>jar</type>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.class</include>
</includes>
<!-- 可以添加其他资源文件 -->
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</overlay>
</overlays>
</configuration>
</plugin>
Tip
推荐jar包方式部署,jar部署方式基本可以与本地开发运行效果一直