| @@ -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"?> | <?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" | <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"> | 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> | <modelVersion>4.0.0</modelVersion> | ||||
| <artifactId>demo-war</artifactId> | |||||
| <artifactId>demo-package-war</artifactId> | |||||
| <version>1.0.0-SNAPSHOT</version> | <version>1.0.0-SNAPSHOT</version> | ||||
| <!-- 若需要打成 war 包,则需要将打包方式改成 war --> | <!-- 若需要打成 war 包,则需要将打包方式改成 war --> | ||||
| <packaging>war</packaging> | <packaging>war</packaging> | ||||
| <name>demo-war</name> | |||||
| <name>demo-package-war</name> | |||||
| <description>Demo project for Spring Boot</description> | <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> | <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> | </properties> | ||||
| <dependencies> | <dependencies> | ||||
| @@ -44,7 +42,7 @@ | |||||
| </dependencies> | </dependencies> | ||||
| <build> | <build> | ||||
| <finalName>demo-war</finalName> | |||||
| <finalName>demo-package-war</finalName> | |||||
| <plugins> | <plugins> | ||||
| <plugin> | <plugin> | ||||
| <groupId>org.springframework.boot</groupId> | <groupId>org.springframework.boot</groupId> | ||||
| @@ -11,13 +11,13 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer | |||||
| * </p> | * </p> | ||||
| * | * | ||||
| * @author yangkai.shen | * @author yangkai.shen | ||||
| * @date Created in 2018-10-30 19:37 | |||||
| * @date Created in 2022-08-23 14:50 | |||||
| */ | */ | ||||
| @SpringBootApplication | @SpringBootApplication | ||||
| public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||||
| public class WarApplication extends SpringBootServletInitializer { | |||||
| public static void main(String[] args) { | 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 | @Override | ||||
| protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | 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> | <modules> | ||||
| <module>demo-package-docker</module> | <module>demo-package-docker</module> | ||||
| <module>demo-package-war</module> | |||||
| </modules> | </modules> | ||||
| </project> | </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-urule</module>--> | ||||
| <!-- <module>demo-activiti</module>--> | <!-- <module>demo-activiti</module>--> | ||||
| <!-- <module>demo-dubbo</module>--> | <!-- <module>demo-dubbo</module>--> | ||||
| <!-- <module>demo-war</module>--> | |||||
| <!-- <module>demo-elasticsearch</module>--> | <!-- <module>demo-elasticsearch</module>--> | ||||
| <!-- <module>demo-mongodb</module>--> | <!-- <module>demo-mongodb</module>--> | ||||
| <!-- <module>demo-neo4j</module>--> | <!-- <module>demo-neo4j</module>--> | ||||