一、前言
Maven管理项目的时候,我们通常将一个业务作为一个单独的子业务进行开发处理,这样就需要使用到了聚合打包和聚合工程的创建问题了。在现在的互联网公司,一般是这个开发模式,对于传统的对日开发中,仍然是一个项目,下面一堆数据,我觉得还是maven这种项目管理起来更加的方便快捷。父类项目的作用,可以简单来讲,就是给各个子项目提供了相同的jar包配置,以及子项目包信息。
二、工程分配
工程名 | 工程类型 | 打包类型 |
---|
emc | 父类包 | pom |
web | 界面 | jar |
user-service | 处理用户的模块 | jar |
passage-service | 处理文章的模块 | jar |
三、创建工程
这里我们使用idea来创建这样的工程。
3.1 创建父类工程emc
打开idea,点击【Create New Project】
选择Maven项目,点击【Next】
填写Maven项目基本信息,点击【Finish】
父类工程emc就这样创建好了,工程如下图所示
删除不需要的文件,修改emc的pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <?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> <groupId>org.wno704</groupId> <artifactId>emc</artifactId> <version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules> <module>web</module> <module>user-service</module> <module>passage-service</module> </modules>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<properties> <java.version>1.8</java.version> </properties>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </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>
|
如果子类项目需要快速创建,可以根据下图提示,点击【Create Module】
创建好的工程如下图所示:
需要我们手动去完成子类项目的文件夹等基础的文件创建,这里我们就不重点介绍,具体之类项目的配置文件参考下面子类项目创建。
3.2 创建web项目
在emc模块上面点击【new】-> 【Moudle】
这里我们快速创建一个基本的springboot项目,我们就点击【Spring Initializr】
填写Maven项目基本信息,点击【Next】
由于是web项目,我们需要创建资源的文件夹,我们选择了Spring Web依赖,然后点击【Next】
输入项目存放路径,点击【Finish】
创建好的项目如下图所示
修改web的pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.wno704</groupId> <artifactId>emc</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>web</artifactId> <name>web</name> <description>Demo project for Spring Boot</description>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
|
这个时候发现emc中web模块已经不提示红色了
这个时候,我们单独构件web项目,发现也可以正常构件。
在Maven构件窗口,重新导入项目(对应项目,鼠标邮件点击【Reimport】),或者重启idea
发现父类的jar包依赖已经引入到web项目中
3.3 创建user-service项目
项目基本创建和web项目一样
Maven项目基本信息如下
项目导入路径
修改user-service的pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.wno704</groupId> <artifactId>emc</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>user-service</artifactId> <name>user-service</name> <description>Demo project for Spring Boot</description>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
|
3.4 创建passage-service项目
项目基本创建和web项目一样
Maven项目基本信息如下
项目导入路径
修改passage-service的pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.wno704</groupId> <artifactId>emc</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>passage-service</artifactId> <name>passage-service</name> <description>Demo project for Spring Boot</description>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
|
这样我们的项目就全部创建完毕,如下图所示
四、聚合项目打包
Maven窗口,在父类项目上点击【install】
最终提示项目构建成功
项目打包如下图所示
web项目
user-service项目
passage-service项目