SrpingBoot项目部署(jar包+war包)
一、打成jar包
以jar包的方式启动,使用sping boot内置的tomcat运行。只要服务器上配置了jdk1.8及以上就可以运行项目,不需要外置tomcat。
1.1 Idea打包
1.2 将jar放到任意目录,cmd运行下面命令即可
java -jar take.jar 或者UTF-8方式启动jar包java -Dfile.encoding=UTF-8 -jar
若jar包名太长,输入java -jar 后 使用tab来选择jar包
二、打成war包
传统的部署方式:将项目打成war包,放在tomcat的webapps目录下面,启动tomcat,即可访问。
2.1 入口类继承SpringBootServletInitializer重写configure方法
package com.aying.takeaway;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Slf4j
@MapperScan("com.aying.takeaway.mapper")
@ServletComponentScan
@SpringBootApplication
@EnableTransactionManagement
public class TakeawayApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(TakeawayApplication.class, args);
log.info("reggie=============>启动成功");
}
// 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署项目。
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TakeawayApplication.class);
}
}
2.2 配置pom.xml
先让IDEA知道你这次要配war包
<packaging>war</packaging>
排除内置tomcat的jar包,防止打包之后与外置Tomcat jar包冲突,导致项目启动失败
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
排除javax.servlet。由于SpringBootServletInitializer需要依赖 javax.servlet,而内置的tomcat-embed-jasper下面的tomcat-embed-core中就有这个javax.servlet,所以将其排除,将其范围设置为provided,最终打好的war里面就不会有servlet-api这个jar,这样就不会跟外置tomcat本身的冲突了。
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
修改打成的包名(可选)
<build>
<!-- 打成的包名称-->
<finalName>take</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.14</version>
</plugin>
</plugins>
</build>
2.3 Idea打包
2.4 配置外置tomcat
将项目打成war包,放在外置tomcat的webapps目录下面,然后修改conf/server.xml配置文件,在Host标签内添加Context设置,docBase属性填写war文件名称,配置如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="take" debug="0" privileged="true" reloadable="true" />
<!--
其他代码
-->
</Host>
2.5 启动外置tomcat并访问网站
运行外置tomcat安装目录下的bin/startup.bat
浏览器输入localhost:8080/,进行访问