Springboot打包(十)
一、前言
1.作为后台开发,项目打包部署是经常性的操作。当我们完成某一阶段的开发之后就要进入测试阶段,这就需要我们打成jar
或者war
包部署在服务器,方便测试人员进行测试。spring boot
打包有多种方式,比如打成jar
、或者war
,亦或者通过jekins
进行打包部署。
2.本篇文章主要介绍怎么如何打成jar
和war
部署。
二、 jar形式
- 2.1
在pom.xml
中添加插件
<groupId>com.example</groupId>
<artifactId>springboot-upload</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
//注意把packaging标签改为jar,此标签也可不写,默认打包方式为jar。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
- 2.2 idea插件打包
在IDEA
右侧Maven Projects
栏双击package
等待Build Success
即可
- 2.3 maven命令行打包
a.黑窗口cd到根目录(和pom.xml
、target
同级),也可在idea工具中选择Terminal
b.执行打包命令 mvn clean package
(跳过测试类命令 mvn clean package -Dmaven.test.skip=true
)
c. 出现如下表示打包成功:
- 2.4 启动项目
a.打包完成后jar
包会生成到target
目录下,命名一般是 项目名+版本号.jar。如下图
启动项目:在
windows
下,cmd
到target
目录下,也可在target
目录下按shift
+右键打开命令行。
b.现演示在Linux
下操作:首先把ja
r包通过xshell
等工具上传到指定的Linux
文件夹下,我这上传位置为home/project
c.输入
java -jar springboot-upload-0.0.1-SNAPSHOT.jar
这种方式启动有一个弊端,就是只要控制台关闭,服务就不能访问了。通过以下命令可以确保关闭后也可运行,即后台运行的方式启动:
nohup java -jar springboot-upload-0.0.1-SNAPSHOT.jar &
也可以在启动的时候选择读取不同的配置文件
java -jar springboot-upload-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
-
2.5 出现的问题
解决方案:
(1)配置中添加spring.thymeleaf.prefix=classpath:/templates
(2)指向模板的路径 不加 /
三、 war形式
打成
war
包放到tomcat
服务器下。
- 3.1
pom.xml
中把jar
改成war
<packaging>war</packaging>
- 3.2 添加外置
tomcat
依赖
<!--打包时排除tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
在这里将
scope
属性设置为provided
,这样在最终形成的WAR
中不会包含这个JAR
包,因为Tomcat
或Jetty
等服务器在运行时将会提供相关的API
类。
- 3.3 在入口类中继承
SpringBootServletInitializer
并重写configure
方法
@SpringBootApplication
public class SpringbootUploadApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringbootUploadApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
return builder.sources(SpringbootUploadApplication.class);
}
}
- 3.4 输入命令
mvn clean package
打包,把target
目录下生成的war
放到tomcat
的webapps
目录下即可。
然后cd
到tomcat
的bin
目录下,执行./startup.sh
。
-
3.5 总结
1、pom
文件中jar
改成war
2、添加外置的tomcat
依赖
3、入口类继承SpringBootServletInitializer
并重写configure
方法
4、项目访问路径ip:port/jar
名称