`

maven中的聚合和继承

阅读更多

maven中的聚合,其xml内容具体如下:
<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.juvenxu.mvnbook</groupId>
 <artifactId>hello-world-m2e</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>pom</packaging>

 <name>hello-world-m2e</name>
 <url>http://maven.apache.org</url>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>
  
      <modules>
          <module>account-email</module>
          <module>account-persist</module>
      </modules>
 </project>


其中这里的第一个特殊的地方为packaging,其中值为POM。一般的默认值为jar

而modules为聚合的核心配置,用户可以通过在一个大包方式为pom的Maven项目中声明任意数量的module元素来实现模块的聚合。这里每个module值都是一个当前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>
      <parent> 
   <groupId>com.juvenxu.mvnbook.account</groupId>
   <artifactId>hello-world-m2e</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <relativePath>../account-parent/pom.xml</relativePath>
      </parent>

<project/>


上述POM使用parent元素声明父模块,parent下的子元素groupId、artifactId和version指定了父模块的坐标,这三个元素是必须的。元素relativePath表示父模块POM的相对路径。

 

依赖管理(dependencyManagement)


Maven提供的dependencyManagement元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性。在dependencyManagement元素下的依赖声明不会引入实际的依赖,不过它能够约束dependencies下的依赖使用。

   <properties>
    <springframework.version>2.5.6</springframework.version>
    <junit.version>4.7</junit.version>       
   </properties>

如果在父类中声明了dependncyManagement
<dependencyManagement>
    <dependencies>
        <dependency>
             <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
               <version>${springframework.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
 

那么子类如需要在声明version元素从而简化了配置。主要用于在父类中声明版本信息。


插件管理(pluginManagement)

  <build>
   <pluginManagement>
       <plugins>
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-source-plugin</artifactId>
                  <version>2.1.1</version>
                   <executions>
                      <execution>
                         <id>attach-sources</id>
                          <phase>verify</phase>
                          <goals>
                             <goal>jar-no-fork</goal> 
                          </goals>
                      </execution>
                   </executions>
            </plugin>
        </plugins>
   </pluginManagement>
 </build>

当子模块需要生成源码包的时候,只需要如下简单配置:

<build>
  <plugins>
     <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-source-plugin</artifactId>
        </plugin>
     </plugins>
 </build>

分享到:
评论

相关推荐

    maven聚合与继承配置

    本示例将深入探讨"Maven聚合与继承"的概念。 **一、Maven聚合(Aggregation)** Maven聚合允许我们将多个独立的Maven项目组织在一起,形成一个单一的构建单元。在我们的示例中,`parent`项目就是一个聚合项目。它...

    maven依赖+继承+聚合

    最后是"Maven聚合"。聚合(Aggregation)是指在单个Maven项目中管理多个子项目的能力。在`pom.xml`中定义`modules`标签,可以将多个子项目包含进来。这样,当我们在顶层项目上执行命令时,Maven会递归地构建所有子...

    通过Maven的聚合和继承特性创建多模块项目示例

    Maven,作为Java开发中的构建工具,提供了强大的聚合(Aggregation)和继承(Inheritance)特性,使得多模块项目的管理变得高效且有序。本文将深入探讨如何利用这两个特性来创建一个复杂的多模块项目,并通过提供的...

    Maven的聚合与继承DEMO(以及前后端分离)

    在本文中,我们将深入探讨 Maven 的聚合与继承特性,并结合前后端分离的实践,来创建一个高效的开发环境。Maven 是 Java 开发中广泛使用的构建工具,它通过配置管理依赖关系,简化项目的构建、测试和部署过程。让...

    maven聚合和继承

    在Maven中,"聚合"和"继承"是两个重要的特性,它们有助于管理和组织大型的多模块项目。 **一、Maven聚合** Maven聚合(Aggregation)是用来管理多个相关项目的方式,这些项目可能共享一部分代码或者有共同的构建...

    maven继承与聚合代码

    **二、Maven聚合** Maven的聚合功能则用于管理多个相关项目,把它们组合成一个整体。这主要通过`&lt;modules&gt;`标签来实现,它允许在一个POM中列出一系列子模块,使得我们可以一次性构建这些模块。聚合POM并不直接影响...

    Maven聚合与继承实例详解.docx

    Maven聚合(Aggregation)功能则允许我们将多个Maven项目组合成一个单一的构建单元。通过在父POM中使用`&lt;modules&gt;`标签,可以列出所有子模块,Maven在构建时会按顺序编译和打包每个子模块。这在处理大型多模块项目时...

    maven 依赖,聚合,继承,插件运行应用

    在"Maven 依赖,聚合,继承,插件运行应用"这个主题中,我们将深入探讨这四个核心概念。 1. **依赖管理**:Maven依赖是项目中各个模块之间共享代码的关键机制。当你在POM.xml文件中声明一个依赖,Maven会自动下载并...

    maven聚合项目

    总结来说,这个"Maven聚合项目"是一个集成了聚合、继承、插件管理和私服使用的实例,展示了如何高效地管理和构建多模块的Java项目。通过这种方式,开发团队可以更有效地协同工作,保证项目的稳定性和一致性。

    maven总结笔记-继承和聚合

    maven总结笔记-继承和聚合

    maven聚合工程demo

    总结来说,"maven聚合工程demo"是一个利用 Maven 聚合和继承机制,结合 SSH 框架构建的多模块 Java Web 应用项目。通过聚合,我们可以高效地管理多个子项目,通过继承,我们保持了配置的一致性。同时,"META-INF" 和...

    maven聚合实例

    Maven聚合允许我们在一个父项目中管理多个子项目,这个父项目被称为"聚合模块"或"顶级模块",在本例中是`demo-top`。这种结构使得我们可以一次性构建和测试所有子项目,而不是逐个处理。这大大提高了开发效率,并且...

    maven 关于 scope test 和 继承传递的问题

    本文将深入探讨"Maven中scope test的使用以及依赖继承传递"这一主题,帮助开发者更好地理解和应用Maven的核心特性。 首先,`scope test`是Maven依赖管理中的一个关键概念。当我们在`pom.xml`文件中为某个依赖设置`...

    maven聚合项目模板

    "maven聚合项目模板"是指使用Maven创建的一种特殊结构,用于组织多个相关但独立的子项目,使得这些子项目可以作为一个整体进行构建和管理。这种方式在大型项目或者有多个子模块的项目中非常常见。 1. **模块分组**...

    Maven的聚合(多模块)和Parent继承

    Maven 中的聚合(多模块)和 Parent 继承是两个独立的概念,但是它们之间存在一定的联系。今天,我们将深入探讨这两个概念,并阐明它们之间的关系。 继承是 Maven 中非常强大的功能之一。通过继承,子 POM 可以从父...

    Maven3实战视频教程(14集)

    Maven3_05_maven的聚合和继承 Maven3_06_复习maven的基本内容 Maven3_07_nexus的介绍和安装 Maven3_08_nexus的配置 Maven3_09_发布项目到nexus中 Maven3_10_生命周期和插件简介 Maven3_11_插件基础 Maven3_12_插件的...

    version-maven-plugin:简单易用的maven继承聚合项目的版本号变更插件

    用于对Maven聚合继承项目的版本号进行便捷变更的工具 在使用RPC框架的微服务架构中,为了让服务消费者实现像调用本地方法一样的透明的通过网络进行RPC,服务提供者一般会提供立面jar用于服务消费者集成并通过动态...

Global site tag (gtag.js) - Google Analytics