SpringBoot项目的两种发布方式:即项目的两种打包方式,jar包或是war包
一、打包成jar包
IDEA工具,使用Maven工具,install命令
注意:是Lifecycle 下的install
jar包的位置:
运行jar包:
注:修改打包时包的名称:
关闭jar包运行:
Windows任务管理器,结束进程:
注:如果任务管理器中没有进程名称和命令行的话,右键名称哪一行,选择显示进程名称
Linux:找到相应的进程:杀死进程: Kill -9 id
二、打包成war包
项目打包方式为war包:
<groupId>com.example</groupId>
<artifactId>myspringboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
在pom.xml文件中移除嵌入式tomcat插件或声明tomcat的作用范围:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
--------------------------------------------------------------------
<!—声明spring boot 内嵌tomcat的作用范围,运行时不起作用-- >
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
新建一个SpringBootStartApplication继承SpringBootServletInitializer,外部tomcat容器部署时,无法依赖Application的main函数,而是要类似于web.xml文件配置的方式启动spring上下文:
启动类中继承SpringBootServletInitalizer实现configure方法,此方法与web.xml里配置监听spring应用上下文的作用一致
注:新建的类于springboot的启动类同级
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(MyspringbootApplication.class);
}
}
打包过程和jar方t式相同,打包好后放到tomcat的webapps目录下:
启动tomcat:运行startup.bat文件
关闭tomcat:运行shutdown,bat文件
注意:idea里启动可以不用jar项目名,外部tomcat启动要加项目名