博客已转至:
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引入
分享到:
相关推荐
本项目“maven多模块聚合的springboot+duubo+zookeeper+Redis整合demo”就是一个很好的示例,它展示了如何利用Maven进行模块化管理,并将Spring Boot、Dubbo、Zookeeper和Redis这四大核心组件有效地集成在一起。...
Maven多模块项目是指由一个父项目(或称为聚合项目)和若干个子项目组成的项目结构。这种结构便于代码组织,提高代码复用性,并能有效管理依赖关系。每个子项目都是独立的Maven项目,可以有自己的pom.xml配置文件,...
7. **继承与聚合**:Maven的多模块项目既可以是继承关系(子模块继承父模块的配置),也可以是聚合关系(父项目包含多个子项目)。本例中的`sample-parent`更侧重于聚合,因为它不包含代码,只负责协调子模块的构建...
2. 构建聚合:运行`mvn install`命令时,Maven会递归地构建所有子模块,然后构建聚合项目本身。 3. 聚合优势:简化多项目构建过程,一次操作即可完成所有相关模块的构建。 **三、实际应用** 在提供的资源《一头扎...
聚合(Aggregation)是指在单个Maven项目中管理多个子项目的能力。在`pom.xml`中定义`modules`标签,可以将多个子项目包含进来。这样,当我们在顶层项目上执行命令时,Maven会递归地构建所有子项目。例如: ```xml ...
4. **聚合(Aggregation)与继承(Inheritance)**:Maven的聚合功能允许在一个POM中管理多个模块,而继承则使得子模块可以共享父模块的配置,如依赖版本、插件配置等。这大大减少了配置的重复性。 5. **构建顺序...
Maven的“聚合”(aggregation)和“继承”(inheritance)特性使得管理大型多模块项目变得简单。聚合允许一个父POM包含多个子模块,而继承则允许子POM从父POM中继承配置,减少重复。 在“maven 模块化项目demo”中...
除了常规的模块结构,Maven还支持聚合项目(aggregator),这种项目并不直接产生可部署的工件,但可以作为一个整体进行构建和测试,这对于运行所有子模块的集成测试非常有用。 在实际开发中,多模块项目还可以帮助...
项目中提到的"springMVCParent"可能是指Maven的聚合模块,这种模块通常用来组织多个子模块,便于管理和构建整个项目。在Maven中,聚合项目通过在POM.xml中定义`<modules>`标签来包含其他子模块,使得一次命令可以...
"创建多层级目录分类的多工程聚合分布式Maven工程"就是一个典型的实践,它涉及到多个关键知识点,包括Maven工程管理、模块化设计、分布式系统以及Dubbo服务治理。 首先,Maven作为Java项目管理和构建工具,是现代...
Maven,作为Java开发中的构建工具,提供了强大的聚合(Aggregation)和继承(Inheritance)特性,使得多模块项目的管理变得高效且有序。本文将深入探讨如何利用这两个特性来创建一个复杂的多模块项目,并通过提供的...
本项目为基于Maven的项目管理架构,专注于Java语言的多模块聚合研究,涉及源码文件共163个,其中包含103个Java源文件、13个XML配置文件、11个Word文档、10个Python脚本、7个JSP页面、4个YAML配置文件、3个JSON数据...
聚合是 Maven 中的一种机制,允许将多个模块组装在一起,相互协调依赖运行。聚合可以理解为将多个模块组装在一起,形成一个大的工程项目。 创建 Maven 多模块工程项目 创建 Maven 多模块工程项目需要经过以下步骤...
总结来说,这个"Maven聚合项目"是一个集成了聚合、继承、插件管理和私服使用的实例,展示了如何高效地管理和构建多模块的Java项目。通过这种方式,开发团队可以更有效地协同工作,保证项目的稳定性和一致性。
通过以上步骤,我们成功地使用 Spring Boot 创建了一个 Maven 聚合工程,它包含多个模块,每个模块都有明确的职责。这种结构有助于提高代码的可维护性和可扩展性,使得大型项目管理变得更加轻松。对于 Spring Boot ...
在本项目中,Maven的聚合功能被用来管理多个子模块,每个子模块可以是一个独立的功能单元,例如实体类和工具类。这样,开发人员可以独立地开发和测试这些模块,然后将它们聚合到一起形成完整的应用。 **Mybatis** ...
在c模块下创建一个新的Maven模块,将其设为聚合工程,指定其依赖为b和c模块。 这种多模块项目结构在大型项目中非常常见,特别是在多人协作开发的情况下,每个模块可以由不同的团队负责,提高了开发效率和代码的可...
在多模块项目中,Maven会按照模块的依赖关系自底向上执行生命周期,先构建子模块,再构建聚合项目。 7. **插件配置** 除了基本的生命周期外,还可以通过配置Maven插件实现更复杂的构建任务,如源码生成、资源文件...
在“maven分模块整合ssm”中,我们需要创建多个Maven子模块来分别封装SSM框架的各个部分和业务逻辑,这通常包括以下几个模块: 1. **父模块(Parent)**:定义共有的依赖管理和版本控制,所有子模块都会继承父模块...