| @@ -0,0 +1,44 @@ | |||
| ## spring-boot-demo-war | |||
| > 本 demo 主要演示了如何将 Spring Boot 项目打包成传统的 war 包程序。 | |||
| ### 1.开发步骤 | |||
| #### 1.1.修改启动类 | |||
| ```java | |||
| @SpringBootApplication | |||
| public class WarApplication extends SpringBootServletInitializer { | |||
| public static void main(String[] args) { | |||
| SpringApplication.run(WarApplication.class, args); | |||
| } | |||
| /** | |||
| * 若需要打成 war 包,则需要写一个类继承 {@link SpringBootServletInitializer} 并重写 {@link SpringBootServletInitializer#configure(SpringApplicationBuilder)} | |||
| */ | |||
| @Override | |||
| protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | |||
| return application.sources(WarApplication.class); | |||
| } | |||
| } | |||
| ``` | |||
| #### 1.2.修改 pom.xml | |||
| ```xml | |||
| <!-- 若需要打成 war 包,则需要将打包方式改成 war --> | |||
| <packaging>war</packaging> | |||
| <dependencies> | |||
| <!-- 若需要打成 war 包,则需要将 tomcat 引入,scope 设置为 provided --> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-tomcat</artifactId> | |||
| <scope>provided</scope> | |||
| </dependency> | |||
| </dependencies> | |||
| ``` | |||
| ### 2.参考 | |||
| - Spring Boot 官方文档:https://docs.spring.io/spring-boot/docs/3.0.0-M4/reference/htmlsingle/#howto.traditional-deployment.war | |||
| @@ -1,26 +1,24 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||
| <parent> | |||
| <groupId>com.xkcoding</groupId> | |||
| <artifactId>demo-package</artifactId> | |||
| <version>1.0.0-SNAPSHOT</version> | |||
| </parent> | |||
| <modelVersion>4.0.0</modelVersion> | |||
| <artifactId>demo-war</artifactId> | |||
| <artifactId>demo-package-war</artifactId> | |||
| <version>1.0.0-SNAPSHOT</version> | |||
| <!-- 若需要打成 war 包,则需要将打包方式改成 war --> | |||
| <packaging>war</packaging> | |||
| <name>demo-war</name> | |||
| <name>demo-package-war</name> | |||
| <description>Demo project for Spring Boot</description> | |||
| <parent> | |||
| <groupId>com.xkcoding</groupId> | |||
| <artifactId>spring-boot-demo</artifactId> | |||
| <version>1.0.0-SNAPSHOT</version> | |||
| </parent> | |||
| <properties> | |||
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
| <java.version>1.8</java.version> | |||
| <java.version>17</java.version> | |||
| </properties> | |||
| <dependencies> | |||
| @@ -44,7 +42,7 @@ | |||
| </dependencies> | |||
| <build> | |||
| <finalName>demo-war</finalName> | |||
| <finalName>demo-package-war</finalName> | |||
| <plugins> | |||
| <plugin> | |||
| <groupId>org.springframework.boot</groupId> | |||
| @@ -11,13 +11,13 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer | |||
| * </p> | |||
| * | |||
| * @author yangkai.shen | |||
| * @date Created in 2018-10-30 19:37 | |||
| * @date Created in 2022-08-23 14:50 | |||
| */ | |||
| @SpringBootApplication | |||
| public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||
| public class WarApplication extends SpringBootServletInitializer { | |||
| public static void main(String[] args) { | |||
| SpringApplication.run(SpringBootDemoWarApplication.class, args); | |||
| SpringApplication.run(WarApplication.class, args); | |||
| } | |||
| /** | |||
| @@ -25,6 +25,6 @@ public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||
| */ | |||
| @Override | |||
| protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | |||
| return application.sources(SpringBootDemoWarApplication.class); | |||
| return application.sources(WarApplication.class); | |||
| } | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| package com.xkcoding.war; | |||
| import org.junit.jupiter.api.Test; | |||
| import org.springframework.boot.test.context.SpringBootTest; | |||
| @SpringBootTest | |||
| class WarApplicationTests { | |||
| @Test | |||
| void contextLoads() { | |||
| } | |||
| } | |||
| @@ -20,6 +20,7 @@ | |||
| <modules> | |||
| <module>demo-package-docker</module> | |||
| <module>demo-package-war</module> | |||
| </modules> | |||
| </project> | |||
| @@ -1,25 +0,0 @@ | |||
| /target/ | |||
| !.mvn/wrapper/maven-wrapper.jar | |||
| ### STS ### | |||
| .apt_generated | |||
| .classpath | |||
| .factorypath | |||
| .project | |||
| .settings | |||
| .springBeans | |||
| .sts4-cache | |||
| ### IntelliJ IDEA ### | |||
| .idea | |||
| *.iws | |||
| *.iml | |||
| *.ipr | |||
| ### NetBeans ### | |||
| /nbproject/private/ | |||
| /build/ | |||
| /nbbuild/ | |||
| /dist/ | |||
| /nbdist/ | |||
| /.nb-gradle/ | |||
| @@ -1,97 +0,0 @@ | |||
| # spring-boot-demo-war | |||
| > 本 demo 主要演示了如何将 Spring Boot 项目打包成传统的 war 包程序。 | |||
| ## pom.xml | |||
| ```xml | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||
| <modelVersion>4.0.0</modelVersion> | |||
| <artifactId>spring-boot-demo-war</artifactId> | |||
| <version>1.0.0-SNAPSHOT</version> | |||
| <!-- 若需要打成 war 包,则需要将打包方式改成 war --> | |||
| <packaging>war</packaging> | |||
| <name>spring-boot-demo-war</name> | |||
| <description>Demo project for Spring Boot</description> | |||
| <parent> | |||
| <groupId>com.xkcoding</groupId> | |||
| <artifactId>spring-boot-demo</artifactId> | |||
| <version>1.0.0-SNAPSHOT</version> | |||
| </parent> | |||
| <properties> | |||
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
| <java.version>1.8</java.version> | |||
| </properties> | |||
| <dependencies> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-web</artifactId> | |||
| </dependency> | |||
| <!-- 若需要打成 war 包,则需要将 tomcat 引入,scope 设置为 provided --> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-tomcat</artifactId> | |||
| <scope>provided</scope> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-test</artifactId> | |||
| <scope>test</scope> | |||
| </dependency> | |||
| </dependencies> | |||
| <build> | |||
| <finalName>spring-boot-demo-war</finalName> | |||
| <plugins> | |||
| <plugin> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-maven-plugin</artifactId> | |||
| </plugin> | |||
| </plugins> | |||
| </build> | |||
| </project> | |||
| ``` | |||
| ## SpringBootDemoWarApplication.java | |||
| ```java | |||
| /** | |||
| * <p> | |||
| * 启动器 | |||
| * </p> | |||
| * | |||
| * @author yangkai.shen | |||
| * @date Created in 2018-10-30 19:37 | |||
| */ | |||
| @SpringBootApplication | |||
| public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||
| public static void main(String[] args) { | |||
| SpringApplication.run(SpringBootDemoWarApplication.class, args); | |||
| } | |||
| /** | |||
| * 若需要打成 war 包,则需要写一个类继承 {@link SpringBootServletInitializer} 并重写 {@link SpringBootServletInitializer#configure(SpringApplicationBuilder)} | |||
| */ | |||
| @Override | |||
| protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | |||
| return application.sources(SpringBootDemoWarApplication.class); | |||
| } | |||
| } | |||
| ``` | |||
| ## 参考 | |||
| https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#howto-create-a-deployable-war-file | |||
| @@ -1,16 +0,0 @@ | |||
| package com.xkcoding.war; | |||
| import org.junit.Test; | |||
| import org.junit.runner.RunWith; | |||
| import org.springframework.boot.test.context.SpringBootTest; | |||
| import org.springframework.test.context.junit4.SpringRunner; | |||
| @RunWith(SpringRunner.class) | |||
| @SpringBootTest | |||
| public class SpringBootDemoWarApplicationTests { | |||
| @Test | |||
| public void contextLoads() { | |||
| } | |||
| } | |||
| @@ -64,7 +64,6 @@ | |||
| <!-- <module>demo-urule</module>--> | |||
| <!-- <module>demo-activiti</module>--> | |||
| <!-- <module>demo-dubbo</module>--> | |||
| <!-- <module>demo-war</module>--> | |||
| <!-- <module>demo-elasticsearch</module>--> | |||
| <!-- <module>demo-mongodb</module>--> | |||
| <!-- <module>demo-neo4j</module>--> | |||