一, eclipse springboot打war包
1. 配置pom.xml文件
<packaging>war</packaging>
<!-- 配置servlet,打war包时放开 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
<!-- 移除嵌入式tomcat插件, 打war包时放开 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions>
<resources> <!-- 打包时将页面文件拷贝到META-INF目录下 --> <resource> <!-- 指定resources插件处理哪个目录下的资源文件 --> <directory>src/main/webapp</directory> <!--注意此次必须要放在此目录下才能被访问到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources>
2. 修改springboot启动类, 添加@EnableScheduling注解, 继承SpringBootServletInitializer类, 新增configure方法
@EnableScheduling public class DemoApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } /** *新增此方法 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(DemoApplication .class); } }
3. 修改项目Maven
右键项目properties
4. 右键项目 Run As --> Maven clean
5. 右键项目 Run As --> Maven build...
6. main选项卡, Goals中填写 package, 勾选Skip Tests
7. JRE选项卡, 这里要选择JDK 不能用JRE, 先Apply 再 Run
eclipse中jre默认没有配置jdk的小伙伴可以这么选
8. targer中找到war包
二, war包在Tomcat中运行
1. 讲war包放在Tomcat的webapps文件夹下
2. 修改conf文件夹下的server.xml文件
在<Host>中添加<Context>, 因为在Tomcat中运行时需要在路径中加入项目名(每一个地址都要加), 所以直接把Tomcat的默认路径改为本项目的路径
笔者尝试过其他的办法, 但是都不太好用, 朋友们如果有更好的办法欢迎留言, 谢谢!
<!-- 修改Tomcat默认访问路径 --> <Context path="" docBase="/项目名" reloadable="true" />
3. 启动Tomcat
4. 访问项目