Browse Source

打包模块之 war 案例完成

3.x
Yangkai.Shen 2 years ago
parent
commit
c5d3c76b39
10 changed files with 72 additions and 155 deletions
  1. +44
    -0
      demo-package/demo-package-war/README.md
  2. +10
    -12
      demo-package/demo-package-war/pom.xml
  3. +4
    -4
      demo-package/demo-package-war/src/main/java/com/xkcoding/war/WarApplication.java
  4. +0
    -0
      demo-package/demo-package-war/src/main/resources/application.yml
  5. +13
    -0
      demo-package/demo-package-war/src/test/java/com/xkcoding/war/WarApplicationTests.java
  6. +1
    -0
      demo-package/pom.xml
  7. +0
    -25
      demo-war/.gitignore
  8. +0
    -97
      demo-war/README.md
  9. +0
    -16
      demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java
  10. +0
    -1
      pom.xml

+ 44
- 0
demo-package/demo-package-war/README.md View File

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

demo-war/pom.xml → demo-package/demo-package-war/pom.xml View File

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

demo-war/src/main/java/com/xkcoding/war/SpringBootDemoWarApplication.java → demo-package/demo-package-war/src/main/java/com/xkcoding/war/WarApplication.java View File

@@ -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);
}
}

demo-war/src/main/resources/application.yml → demo-package/demo-package-war/src/main/resources/application.yml View File


+ 13
- 0
demo-package/demo-package-war/src/test/java/com/xkcoding/war/WarApplicationTests.java View File

@@ -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() {
}

}

+ 1
- 0
demo-package/pom.xml View File

@@ -20,6 +20,7 @@

<modules>
<module>demo-package-docker</module>
<module>demo-package-war</module>
</modules>

</project>

+ 0
- 25
demo-war/.gitignore View File

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

+ 0
- 97
demo-war/README.md View File

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


+ 0
- 16
demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java View 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() {
}

}

+ 0
- 1
pom.xml View File

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


Loading…
Cancel
Save