我也很蛋疼这种需求。
1. 部署到JavaEE容器
修改启动类,继承
SpringBootServletInitializer
并重写configure
方法public class SpringBootSampleApplication extends SpringBootServletInitializer{ private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class); @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(this.getClass()); } }
修改pom文件中jar 为 war
<!-- <packaging>jar</packaging> --> <packaging>war</packaging>
修改pom,排除tomcat插件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 排除Tomcat后,需要引入Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
2. 注意
特别要注意这个
src/main/resource
目录下的exclude
的参数, **的意思代表排除所有!!!!然后就是Maven依赖发布到lib目录下
使用文本编辑器打开项目根目录下的
.classpath
文件
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<!--就是下面这句了-->
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>