Maven - explicação detalhada do módulo de agregação / projeto pai-filho

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:
Insira a descrição da imagem aqui

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:
Insira a descrição da imagem aqui

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.
Insira a descrição da imagem aqui

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>  

Acho que você gosta

Origin blog.csdn.net/weixin_44556968/article/details/109891424
Recomendado
Clasificación