SpringBoot项目打包在linux服务器中运行:
jar类型项目会打成jar包:jar类型项目使用SpringBoot打包插件打包时,会在打成的jar中内置一个tomcat的jar。所以我们可以使用jdk直接运行该jar项目可,jar项目中有一个功能,将功能代码放到其内置的tomcat中运行。我们直接使用浏览器访问即可。
war类型项目会打成war包:在打包时需要将内置的tomcat插件排除,配置servlet的依赖。将war正常的放到tomcat服务器中运行即可。
目录
(4)打成包后,将其复制到指定位置,可以通过dos ?java -jar指令直接启动运行?
(2)?排除项目中自带的所有的Tomcat插件和jsp servlet 依赖
(3)SpringBoot的启动类继承SpringBootServletInitializer,并重写configure?
(5)将war包放到tomcat下的webapps下,启动tomcat即可
Java
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
为什么要排除项目中自带的所有的Tomcat插件和 jsp servlet 依赖?
因为这里要将项目放到一个外置Tomcat上运行。
Java
<!--配置SpringBoot的web启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--排除web启动中自动依赖的tomcat插件--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 手动依赖tomcat插件,但是表明项目打包时该依赖不会被打进去,目的主要是保证开发阶段本地SpringBoot 项目可以正常运行 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。 相当于compile,但是打包阶段做了exclude操作--> <scope>provided</scope> </dependency>
Java
@SpringBootApplication public class Springboot03Application extends SpringBootServletInitializer { //重写配置方法 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Springboot03Application.class); } public static void main(String[] args) { //启动SpringBoot SpringApplication.run(Springboot03Application.class,args); } }
将原先访问路径中的项目名(springboot03)改为(springboot03-0.0.1-SNAPSHOT) 。
也就是更改为与war包名称一样。
本文参考链接:https://blog.csdn.net/m0_67391870/article/details/126516111
苏公网安备 32132202001088号
| Copyright 北极熊 北格技术 版权所有