一:SSM项目打包
1.这个一定要勾选防止静态资源没打包上
2.第二步
3.第三步
4.更改名字(注意部署到线上的时候这里如果用docker或者window部署的话需要带这个项目名,不然会出现找不到接口的情况)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9db8912694c442f199da558be57b4458.png
打包
二:注意事项
2.1webapps必须标记为资源否则可能出现找不到静态资源
2.2找不到静态资源解决方法
web.xml文件加入这个
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.eot</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.svg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ttf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.woff</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.TTF</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.webp</url-pattern>
</servlet-mapping>
2.3部署完404找不到接口(本地idea可以,线上不行)
这里是因为idea运行时候会自动带上包名,而你部署的时候不会带包名
可以尝试修改tomcat配置文件隐藏项目名解决
在tomcat中的conf目录中,在server.xml中的,节点中添加:
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"></Context>
或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
第二种方法(docker部署ssm):
拉取镜像
docker pull tomcat:8.5
```java
docker run -d -p 8002:8080 --name vr-mall \
--network=net-ehooyun \
-v /ehooyun/java/vr-mall/platform-framework.war:/usr/local/tomcat/webapps/ROOT.war \
--restart=always tomcat:8.5```
1、将war包挂载到镜像中/usr/local/tomcat/webapps/下即可启动项目。
2、如果需要取消项目名通过跟路径访问只需要将war包改名为ROOT.war即可。