Artigo Diretório
1. Módulo de agregação Maven
O módulo de agregação é o nível superior do diretório do projeto e outros módulos existem como subdiretórios do módulo de agregação. O objetivo é construir vários módulos de projeto de uma vez.
A estrutura do projeto é a seguinte:
Geralmente, o módulo agregado pode ser entendido como o projeto pai e os módulos a seguir são submódulos.
Função 1 : O projeto pai é um projeto pom, que geralmente é apenas uma ferramenta para ajudar na construção de seus submódulos, e não tem conteúdo substancial. O código específico de cada projeto ainda está escrito no projeto gerado. Todos os submódulos são herdados do módulo pai, e o módulo pai é usado para controle de versão de todo o projeto, ou seja, as versões de todos os pacotes jar a serem usados no projeto são gerenciados centralmente pelo projeto pai. Desta forma, você não precisa escrever o número da versão ao escrever dependências do maven em outros arquivos pom do projeto.
Normalmente, um grande projeto irá dividir o projeto em vários módulos. Por exemplo, conforme mostrado na figura acima, não haverá dependências entre os vários submódulos, mas há muitas coisas em comum entre eles, como muitas configurações semelhantes e muitos frascos semelhantes, pacotes e assim por diante, neste momento as vantagens do projeto pai e do subprojeto podem ser refletidas. Sabemos que o pom.xml do projeto pai maven e o subprojeto possuem uma relação de herança, ou seja, as mesmas partes de cada módulo podem ser configuradas no arquivo pom.xml do projeto pai, para que o pom. xml no subprojeto apenas se coloca. Coisas de personalidade estão bem, o que reduz bastante a carga de trabalho. Além disso, outros estágios, como compilação e empacotamento, podem ser executados no projeto pai, e o maven irá operar automaticamente os subprojetos para melhorar a eficiência. Como mostrado abaixo:
Apresente dois submódulos no arquivo pom do módulo pai:
<modules>
<module>Model1</module>
<module>Model2</module>
</modules>
Neste momento, Model1 e Model2 são submódulos de ParentProject.Neste momento, Model1 e Model2 irão herdar a configuração do arquivo pom.xml em ParentProject.
2. Herança de Pom
A herança de Pom é extrair configurações repetidas, geralmente configuradas no módulo pai, para fornecer uso para o submódulo, de modo que "uma declaração, use em todos os lugares" possa ser alcançada.
Neste momento, os arquivos pom do Modelo1, Modelo2 e Modelo3 são herdados do Pai.
Elementos herdados de pom comumente usados:
groupId :项目组 ID ,项目坐标的核心元素;
version :项目版本,项目坐标的核心元素;
description :项目的描述信息;
properties :自定义的 Maven 属性;
dependencies :项目的依赖配置;
dependencyManagement :醒目的依赖管理配置;
repositories :项目的仓库配置;
build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
Para a configuração específica do arquivo pom.xml, consulte o seguinte:
https://blog.csdn.net/u012152619/article/details/51485297
do seguinte modo:
Projeto pai pom:
<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>com.sohu.train</groupId>
<artifactId>maven-aggregate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 子模块 -->
<modules>
<module>../maven-01</module>
<module>../maven-02</module>
<module>../maven-03</module>
</modules>
<!-- 统一配置构件的版本号 -->
<properties>
<junit.version>3.8.1</junit.version>
</properties>
<!-- 依赖管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Arquivo pom do subprojeto:
<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>
<!-- 指定父pom的坐标及pom位置 -->
<parent>
<groupId>com.sohu.train</groupId>
<artifactId>maven-aggregate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../maven-aggregate/pom.xml</relativePath>
</parent>
<artifactId>maven-03</artifactId>
<packaging>jar</packaging>
<!-- 添加对junit依赖,这样公用配置只需要在maven-aggregate中去配置 -->
因为在父工程中添加同一依赖,这一部分可以不要。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
</project>