java - 如何制作Spring Boot多模块项目的单个war文件
问题描述
我的主要根 pom 以及 web 模块 pom 和模型模块 pom 都在那里,所以如何制作单个 war 文件而不是每个模块的多个 war 文件。或者从这些 jar 生成的 war 文件和包含 application.properties 的任何其他方法以及带有 lib 文件夹的 WEB-INF 和 META-INF 文件夹
主 pom.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>web</module>
<module>model</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.codemaster</groupId>
<artifactId>college-management-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>college-management-system</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>13</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
网络模块 pom.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">
<parent>
<artifactId>college-management-system</artifactId>
<groupId>com.codemaster</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>web</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.codemaster</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
模型模块 pom.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">
<parent>
<artifactId>college-management-system</artifactId>
<groupId>com.codemaster</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>model</artifactId>
<packaging>jar</packaging>
</project>
那么如何只制作单个war文件而不是每个模块的多个war文件
解决方案
在您的情况下,您将打包添加为 web 模块(pom.xml)中的jar,将 web 模块打包更改为war。
旧代码
<packaging>jar</packaging>
新代码
<packaging>war</packaging>
请遵循以下 Spring Boot Maven 多模块项目指南以获取更多详细信息
Spring 官方文档
https://spring.io/guides/gs/multi-module/
Git hub spring boot maven 多模块示例
https://github.com/spring-guides/gs-multi-module.git
推荐阅读
- bash - 循环遍历带有空格的文件名 Bash 使用变量
- opengl - glGenBuffers 与 glGenTextures
- python - 通过 python 代码验证服务器连接性
- vb.net - Syntax error in INSERT INTO Statement in vb.net using Access database "how can i fix it ?"
- powerbi - 根据另一列的条件查找先前的值
- ios - Swift UITableView Cell 滚动时更改图像
- c++ - 为什么 doew GCC 编译带有值、右值和左值参数的函数?
- javascript - 带有动态菜单的布局
- networking - URL 如何映射到 DNS 中各自的 IP 地址?
- sql - SQL Server:删除重复项并添加列