将SpringBoot打包并部署到云服务器中
方法一:直接复制
简单粗暴的方法就是直接将编译好的文件全部复制到云服务器中tomcat安装目录下的webapps/ROOT
路径中,这样省去了路径设置。
在浏览器中直接输入公网ip:8080
就可以直接访问了。
方法二:SpringBoot项目打jar包
springboot默认内嵌有tomcat,所以可以不依赖外部的tomcat容器,直接打成jar包,运行即可。
(1) 直接点击pakage,等待jar包打包完成。
(2)生成jar包后
在jar包所在目录的命令行下输入:java -jar bit.jar
,即可成功运行项目。
方法三:使用外置tomcat容器打成war包
实际开发中更多的可能需要多个项目使用同一个tomcat容器,此时,需要统一tomcat版本,将springboot项目打为war包而不再是jar包。
(1)在pom.xml中添加
<packaging>war</packaging>
(2)在pom.xml中添加tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
注:
<scope>provided</scope>
表示在编译和测试时使用(不加它,打的包中会指定tomcat,用tomcat部署时会因tomcat版本报错;而加上它,打包时不会把内置的tomcat打进去)
(3)设置war包的名字,在build中添加fileName标签
<build>
<finalName>usermangers</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!--必须添加这个配置-->
</configuration>
</plugin>
</plugins>
</build>
(4)设置启动类
启动类需要继承SpringBootServletInitializer
,并在其方法configure()
中返回我们项目的启动类。
@SpringBootApplication
@MapperScan("com.glp.dao")
public class UsermanagersApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(UsermanagersApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(UsermanagersApplication.class, args);
}
}
(5)打包
先点击Reimport
,
然后点击clean
,再点击install
如果出现测试出错,那么我们可以考虑先跳过测试部分:
在pom.xml中加入以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
(6)部署
在target文件夹下会生成对应名字的war包
将war包通过Xftp上传到阿里云服务器
找到云服务器中tomcat下的webapps文件夹:
将war包复制到该文件夹下,tomcat自动完成解包,部署完成: