[login] 1、maven项目,修改pom文件 将 jar 改为 war 2、打包时排除tomcat. ``` org.springframework.boot spring-boot-starter-tomcat provided ``` 在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。 3、注册启动类 创建Application.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。 ``` import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; /** * @author mazhen3 * */ @SpringBootApplication public class Application extends SpringBootServletInitializer { /** * @param args */ public static void main(String[] args) { SpringApplication.run(Application.class, args); } /** * 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } } ``` ———————————————— 在pom.xml配置增加 ``` compile ``` 一般情况下,SpringBoot的Maven的项目都是jar包,那么如果想打war包,可以按照如下步骤: 步骤一、修改pom.xml文件 1.将packaging标签中的jar改成war 2. 添加因配置外部tomcat而配置的依赖 org.springframework.boot spring-boot-starter-tomcat provided 3.由于没有web.xml文件,因此需要加入插件,以告知maven ``` org.apache.maven.plugins maven-war-plugin 2.6 false ``` 4.可以添加finalName标签,用以设置war包的名字 步骤二、修改SpringBoot的启动类 让启动类继承了SpringBootServletInitializer类并且重写configure方法 在这里插入图片描述 步骤三、先后执行maven的clean和build命令 1.左键选中项目,选择点击右键Run As,点击Maven clean,执行两次 控制台出现BUILD SUCCESS即为成功 2.左键选中项目,选择点击右键Run As,点击Maven build,Goals填写-X package,勾选Update Snapshots和Skip Tests,点击Run 控制台出现BUILD SUCCESS即为成功 3.以上步骤均执行成功后,左键选中项目,右键点击Refresh,刷新项目 在target目录下生成对应的war包 引入mainClass ``` org.springframework.boot spring-boot-maven-plugin com.hyjk.asm.AsmApplication repackage ``` [/login] 该部分仅登录用户可见 最后修改:2022 年 03 月 30 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏