最近需要把开发的spring boot项目打包部署到云服务器上,自己先把项目部署到本地的tomcat上运行,结果发现怎么部署都会报错。现在特别整理了所有部署流程。以帮助大家解决问题。
前提是你得保证你得spring boot项目在idea上能跑起来,并且访问到服务器,下面直接重点。
第一步,修改配置pom.xml文件
<packaging>war</packaging> <!-- 网上有些说把war改成jar,个人尝试过,这个不用改 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<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>
<!-- 移除之后会报错,加入下面的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<build>
<finalName>wxxm</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.sc.wxxm.WxxmApplication</mainClass><!-- 项目运行main方法的全路径 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/src/main/resources/lib</extdirs><!-- maven无法导入的依赖,我自己建的lib包 -->
</compilerArguments>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
第二步,修改启动类,启动类继承SpringBootServletInitializer类,重写configure方法
@SpringBootApplication
@EnableAutoConfiguration
public class WxxmApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(WxxmApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(WxxmApplication.class, args);
}
}
第三步,使用 idea下的命令行操作打包xxxx.war,输入命令 mvn clean package
![](https://i-blog.csdnimg.cn/blog_migrate/fe575e70cf73ae5a7864f4de162c10c7.png)
出现以下内容 打包完成
![](https://i-blog.csdnimg.cn/blog_migrate/ffa161528fcf29e9022f64bd96316b0d.png)
第四步,在本地打开tomcat下的webapps,将war包复制到该文件夹下,进入tomcat/bin目录打开命令行,
输入命令 startup ,
出现以下内容启动成功。
第五步,访问tomcat自带配置的端口号即可访问项目localhost:8080/xxxx/....。
另外如需修改tomcat端口号,参见另一篇文章修改tomcat端口号
这是我所遇到的问题以及解决办法,希望也能适用于你,喜欢就点个赞,谢谢啦。