如何把多个SpringBoot项目打成war包放在一台Tomcat上运行

in java with 0 comment

修改pom.xml文件

修改打包方式

<!--<packaging>jar</packaging>-->
<packaging>war</packaging>
修改打包类型为war类型

修改相关依赖

<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>

<!--加入本地tomcat-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<scope>provided</scope>
</dependency>

修改相关插件

加入以下插件
<!--用于打成war包的配置-->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<configuration>
		<!--这里叫什么名之后包就叫什么名,
			也是放在tomcat上之后的访问后缀 eg:http://localhost:8080/demo
			如果需要不加后缀访问,改成ROOT即可-->
		<warName>demo</warName>
	</configuration>
</plugin>

删除以下插件
<!--
	<plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<configuration>
			<executable>true</executable>
		</configuration>
	</plugin>
	-->

修改springboot项目启动类

启动类继承 SpringBootServletInitializer 类,并重写configure方法

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {

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

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return super.configure(builder);
	}

}

修改springboot配置文件application

application.properties

springboot项目1:
	spring.jmx.enabled=false
	spring.jmx.default-domain=domain1
	
springboot项目2:
	spring.jmx.enabled=false
	spring.jmx.default-domain=domain2
	
spring.jmx.enabled的值默认为true
值为true的时候,两个springboot项目是不能同时启动的
spring.jmx.default-domain的值是什么无所谓,只要两个项目的值不一样就行

application.yml

springboot项目1:
spring:
	jmx:
		enabled: false
		default-domain: domain1
		
springboot项目2:
spring:
	jmx:
		enabled: false
		default-domain: domain2

打包运行

打包后,在项目空间的target目录下就可以看到打成的War包
让后吧war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署
然后通过浏览器访问即可

注意:添加访问后缀后,要注意修改前端界面中的资源请求地址,不然可能出现大量404