SpringBoot项目打包部署
1. jar包部署
添加一个插件
<!-- 打包插件 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
这种使用SpringBoot内嵌的Tomcat进行部署。SpringBoot在不指定打包的时候默认jar包形式
<packaging>jar</packaging>
使用命令启动部署
java -jar xxx.jar
注意存在第三方jar的情况
2. war包部署
添加插件如上
打包方式修改为war
<packaging>war</packaging>
添加tomcat插件,spring boot本身有一个内嵌的tomcat,如果不做其他配置直接打包,就会生成一个jar包。 所以我们引入外部tomcat
<!-- 外部 tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency>
在启动类中做如下配置,继承SpringBootServletInitializer,重写configure方法
@SpringBootApplication public class MyApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyApplication.class); } }
打包(war)
- 切换到项目所在路径,使用命令
mvn clean package
- 使用IDE工具,例如IDEA自带打包工具
- 切换到项目所在路径,使用命令
部署,拷贝war包到tomcat的webapps路径下,启动tomcat
注意:这种war包方式端口号使用tomcat的,项目名使用war包的名字,对于application.yml配置文件里指定的端口号和项目名会覆盖掉。
注意第三方jar的情况
使用maven的打包插件,打包方式还是如上。
<build>
<!--设置maven-war-plugins插件,否则外部依赖无法打进war包 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/resources/jar/</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
注意:打包插件不能再用springboot提供的