注:在看本篇的前提,需要查看自己的服务器是否安装了jdk8.x,tomcat8.x,mavem3.x,mysql5.x+ 执行 java -version 查看自己的jdk是否安装 安装完成之后还需要设置环境变量 首先打开pom.xml,然后找出项目的gav,项目默认是用jar打包的,所以

	<modelVersion>4.0.0</modelVersion>
	<groupId>cc.ryanc</groupId>
	<artifactId>halo</artifactId>
	<packaging>jar</packaging>
	<version>latest</version>
	<name>halo</name>

第一步: 将上面的packaging的jar改成war 第二步: 找出Application类,默认为如下:

@Slf4j
@SpringBootApplication
@EnableCaching
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
 
}

我们需要改造一下,让application类继承SpringBootServletInitializer类(此接口为springboot整合servlet的初始化接口,这个类下面初始化了许多参数,有兴趣可以看看,这里不多赘述)

@Slf4j
@SpringBootApplication
@EnableCaching
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
}

第三步: 我们不需要用内置的tomcat,所以在pom里面将排除掉,并将score设置为provided(表示只在编辑和测试中使用,不会打包该依赖)

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<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>
	<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
		相当于compile,但是打包阶段做了exclude操作-->
	<scope>provided</scope>
</dependency>

第四步: 在项目根路径下执行mvn install file 打包完成之后,会在target文件夹下面生成一个war包 file 第五步: 将生成好的war包丢进服务器下 file 如果你想默认访问(服务器:端口),则可以将编译好的文件丢进ROOT下,如下图 file

第六步: 执行启动tomcat ./start.sh