注:在看本篇的前提,需要查看自己的服务器是否安装了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
打包完成之后,会在target文件夹下面生成一个war包
第五步: 将生成好的war包丢进服务器下
如果你想默认访问(服务器:端口),则可以将编译好的文件丢进ROOT下,如下图
第六步: 执行启动tomcat ./start.sh