`
lijiejava
  • 浏览: 262349 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

Maven 多模块聚合

阅读更多
博客已转至:http://www.muxuanli.com/lmx/

【聚合】类似的多个模块的项目,我们在构建时,会希望一次构建完成,而不是每个模块都执行mvn命令。Maven的聚合特性可是实现此需求。
【继承】在parent项目中定义一些依赖,可以避免在其它子项目中重复定义,其<packaging>的值也是 pom

以admin项目为例   包括version配置等信息

admin-common   主要是POJO entity vo 等
admin-biz             主要进行一些业务操作(依赖biz)
admin-web           web项目  依赖common/biz
admin-parent       主要是定义项目中依赖的jar包的版本等,用于继承

在以上四个目录之上,可以构建一个新的项目admin,该项目只有一个pom文件,其特殊之处在于:
1. <packaging>的值 是 pom , 而不是默认的jar
2. 使用了modules元素,实现多模块的聚合


admin
        --- admin-common
        --- admin-biz
        --- admin-web
        --- admin-parent
        --- pom.xml 

step1  建立总的聚合文件夹 admin,里面只有一个 pom.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.lmx.test</groupId>
  <artifactId>admin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Admin Project</name>
</project>


step2  在admin目录下建立parent项目,里面也只有一个pom.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.lmx.test</groupId>
  <artifactId>admin-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Admin Parent</name>
</project>



step3 分别创建common,biz,web项目

以common项目为例:在admin目录下执行mvn命令:
mvn archetype:generate -DgroupId=com.lmx.test -DartifactId=admin-common -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


创建admin-web项目:
mvn archetype:generate -DgroupId=com.lmx.test -DartifactId=admin-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false



查看admin-common的pom文件,已经继承了parent:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.lmx.test</groupId>
    <artifactId>admin</artifactId>
    <version>0.0.1-SNAPSHOT</version>

  </parent>
  <groupId>com.lmx.test</groupId>
  <artifactId>admin-common</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>admin-common</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>


其中 groupId version等是可以继承的,所以可以删除掉!


查看admin下的pom文件:modules元素下已自动加入了3个子模块
<?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>com.lmx.test</groupId>
  <artifactId>admin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Admin Project</name>
  <modules>
    <module>admin-common</module>
    <module>admin-biz</module>
    <module>admin-web</module>
  </modules>
</project>



step4 eclipse引入
 

0
0
分享到:
评论

相关推荐

    maven多模块聚合的springboot+duubo+zokeeper+Redis整合demo

    本项目“maven多模块聚合的springboot+duubo+zookeeper+Redis整合demo”就是一个很好的示例,它展示了如何利用Maven进行模块化管理,并将Spring Boot、Dubbo、Zookeeper和Redis这四大核心组件有效地集成在一起。...

    maven多模块项目构建过程

    Maven多模块项目是指由一个父项目(或称为聚合项目)和若干个子项目组成的项目结构。这种结构便于代码组织,提高代码复用性,并能有效管理依赖关系。每个子项目都是独立的Maven项目,可以有自己的pom.xml配置文件,...

    maven多模块打包pom文件

    7. **继承与聚合**:Maven的多模块项目既可以是继承关系(子模块继承父模块的配置),也可以是聚合关系(父项目包含多个子项目)。本例中的`sample-parent`更侧重于聚合,因为它不包含代码,只负责协调子模块的构建...

    maven继承与聚合代码

    2. 构建聚合:运行`mvn install`命令时,Maven会递归地构建所有子模块,然后构建聚合项目本身。 3. 聚合优势:简化多项目构建过程,一次操作即可完成所有相关模块的构建。 **三、实际应用** 在提供的资源《一头扎...

    maven依赖+继承+聚合

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

    maven多模块

    4. **聚合(Aggregation)与继承(Inheritance)**:Maven的聚合功能允许在一个POM中管理多个模块,而继承则使得子模块可以共享父模块的配置,如依赖版本、插件配置等。这大大减少了配置的重复性。 5. **构建顺序...

    maven 模块化项目demo

    Maven的“聚合”(aggregation)和“继承”(inheritance)特性使得管理大型多模块项目变得简单。聚合允许一个父POM包含多个子模块,而继承则允许子POM从父POM中继承配置,减少重复。 在“maven 模块化项目demo”中...

    Maven 多模块

    除了常规的模块结构,Maven还支持聚合项目(aggregator),这种项目并不直接产生可部署的工件,但可以作为一个整体进行构建和测试,这对于运行所有子模块的集成测试非常有用。 在实际开发中,多模块项目还可以帮助...

    maven-聚合项目-springMVC

    项目中提到的"springMVCParent"可能是指Maven的聚合模块,这种模块通常用来组织多个子模块,便于管理和构建整个项目。在Maven中,聚合项目通过在POM.xml中定义`&lt;modules&gt;`标签来包含其他子模块,使得一次命令可以...

    创建多层级目录分类的多工程聚合分布式Maven工程 (样例源码)

    "创建多层级目录分类的多工程聚合分布式Maven工程"就是一个典型的实践,它涉及到多个关键知识点,包括Maven工程管理、模块化设计、分布式系统以及Dubbo服务治理。 首先,Maven作为Java项目管理和构建工具,是现代...

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

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

    基于Maven的Java语言多模块聚合研究设计源码

    本项目为基于Maven的项目管理架构,专注于Java语言的多模块聚合研究,涉及源码文件共163个,其中包含103个Java源文件、13个XML配置文件、11个Word文档、10个Python脚本、7个JSP页面、4个YAML配置文件、3个JSON数据...

    IntelliJ IDEA 构建maven多模块工程项目(详细多图)

    聚合是 Maven 中的一种机制,允许将多个模块组装在一起,相互协调依赖运行。聚合可以理解为将多个模块组装在一起,形成一个大的工程项目。 创建 Maven 多模块工程项目 创建 Maven 多模块工程项目需要经过以下步骤...

    maven聚合项目

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

    springboot创建maven聚合工程

    通过以上步骤,我们成功地使用 Spring Boot 创建了一个 Maven 聚合工程,它包含多个模块,每个模块都有明确的职责。这种结构有助于提高代码的可维护性和可扩展性,使得大型项目管理变得更加轻松。对于 Spring Boot ...

    springboot项目 maven聚合

    在本项目中,Maven的聚合功能被用来管理多个子模块,每个子模块可以是一个独立的功能单元,例如实体类和工具类。这样,开发人员可以独立地开发和测试这些模块,然后将它们聚合到一起形成完整的应用。 **Mybatis** ...

    IntelliJ IDEA 构建maven多模块工程项目.docx

    在c模块下创建一个新的Maven模块,将其设为聚合工程,指定其依赖为b和c模块。 这种多模块项目结构在大型项目中非常常见,特别是在多人协作开发的情况下,每个模块可以由不同的团队负责,提高了开发效率和代码的可...

    maven构建 多模块项目

    在多模块项目中,Maven会按照模块的依赖关系自底向上执行生命周期,先构建子模块,再构建聚合项目。 7. **插件配置** 除了基本的生命周期外,还可以通过配置Maven插件实现更复杂的构建任务,如源码生成、资源文件...

    maven分模块整合ssm

    在“maven分模块整合ssm”中,我们需要创建多个Maven子模块来分别封装SSM框架的各个部分和业务逻辑,这通常包括以下几个模块: 1. **父模块(Parent)**:定义共有的依赖管理和版本控制,所有子模块都会继承父模块...

Global site tag (gtag.js) - Google Analytics