聚合主要是为了解决多个模块一起构建。也就是说在上面的用户项目中,多个模块统一在一个额外的模块来构建整个项目的所有模块。
继承主要是为了解决多个模块重复配置的问题。
下面来看看怎样来修改用户小项目
首选建一个额外模块user-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.naxsu.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- packaging的类型为pom -->
<packaging>pom</packaging>
<!-- module的值是一个以当前POM为主目录的相对路径 -->
<modules>
<module>../user-core</module>
<module>../user-dao</module>
<module>../user-log</module>
<module>../user-service</module>
</modules>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.10</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-log</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
core模块的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>
<parent>
<groupId>com.naxsu.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-core</artifactId>
<name>user-core</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
</dependencies>
</project>
log模块的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>
<parent>
<groupId>com.naxsu.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-log</artifactId>
<name>user-log</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
</dependencies>
</project>
dao模块的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>
<parent>
<groupId>com.naxsu.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-dao</artifactId>
<name>user-dao</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-core</artifactId>
</dependency>
</dependencies>
</project>
service模块的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>
<parent>
<groupId>com.naxsu.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-service</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-dao</artifactId>
</dependency>
<dependency>
<groupId>com.naxsu.user</groupId>
<artifactId>user-log</artifactId>
</dependency>
</dependencies>
</project>
本文链接:
http://www.naxsu.com/maven_-ju-he-he-ji-cheng/
分享到:
相关推荐
本示例将深入探讨"Maven聚合与继承"的概念。 **一、Maven聚合(Aggregation)** Maven聚合允许我们将多个独立的Maven项目组织在一起,形成一个单一的构建单元。在我们的示例中,`parent`项目就是一个聚合项目。它...
Maven3_05_maven的聚合和继承 Maven3_06_复习maven的基本内容 Maven3_07_nexus的介绍和安装 Maven3_08_nexus的配置 Maven3_09_发布项目到nexus中 Maven3_10_生命周期和插件简介 Maven3_11_插件基础 Maven3_12_插件的...
最后是"Maven聚合"。聚合(Aggregation)是指在单个Maven项目中管理多个子项目的能力。在`pom.xml`中定义`modules`标签,可以将多个子项目包含进来。这样,当我们在顶层项目上执行命令时,Maven会递归地构建所有子...
Maven,作为Java开发中的构建工具,提供了强大的聚合(Aggregation)和继承(Inheritance)特性,使得多模块项目的管理变得高效且有序。本文将深入探讨如何利用这两个特性来创建一个复杂的多模块项目,并通过提供的...
Maven 的聚合和继承特性可以很好地支持这种架构,通过不同的模块分别处理前端和后端的构建,保持项目结构清晰,便于团队协作。 在实践中,我们可能需要创建以下类型的 Maven 子项目: 1. 前端项目:通常使用 ...
Maven聚合(Aggregation)是用来管理多个相关项目的方式,这些项目可能共享一部分代码或者有共同的构建目标。在POM中,我们可以通过设置`<modules>`标签来指定一个父项目下的子项目。这样,当我们在父项目执行构建...
在Java开发领域,Maven...通过以上步骤,我们可以将传统的Web工程转化为Maven的拆分与聚合形式,不仅提升了项目的可维护性,还方便了团队协作和持续集成。这样的结构更符合现代软件开发的模式,便于项目的扩展和升级。
Maven的聚合项目可以将多个子项目组合在一起,方便统一构建和管理。继承则允许子项目继承父项目的配置,减少重复配置,提高代码复用。 7. **项目信息报告** Maven可以生成各种项目信息报告,如项目摘要、检查报告...
9. **聚合与继承**:聚合项目允许将多个独立的Maven项目组合在一起,而继承则允许共享POM中的部分配置,减少了重复代码。 10. **持续集成**:Maven与许多持续集成工具(如Jenkins、Travis CI等)集成良好,使得自动...
**二、Maven聚合** Maven的聚合功能则用于管理多个相关项目,把它们组合成一个整体。这主要通过`<modules>`标签来实现,它允许在一个POM中列出一系列子模块,使得我们可以一次性构建这些模块。聚合POM并不直接影响...
7. **聚合与继承**:聚合(aggregation)允许一个项目包含其他项目,而继承(inheritance)则使得子项目可以继承父项目的属性和依赖,减少重复配置。 8. **本地仓库**:Maven会将下载的依赖存放在本地仓库,供后续...
### Maven的聚合与继承 - **聚合(Aggregation)**:一个POM可以包含多个子项目,形成一个聚合项目,方便整体管理和构建。 - **继承(Inheritance)**:子项目可以继承父项目的配置,减少重复代码,保持配置一致性...
Maven聚合(Aggregation)功能则允许我们将多个Maven项目组合成一个单一的构建单元。通过在父POM中使用`<modules>`标签,可以列出所有子模块,Maven在构建时会按顺序编译和打包每个子模块。这在处理大型多模块项目时...
3. **继承与聚合**:Maven 提供了父POM和多模块项目的支持,通过继承,多个子项目可以共享相同的配置。聚合功能允许用户在一个父项目中管理多个子项目,方便整体构建。 4. **版本管理**:Maven 可以处理不同版本的...
Maven支持项目聚合与继承,以应对复杂项目结构。聚合项目可以将多个子项目组合在一起,便于统一管理和构建。继承则允许子项目继承父项目的配置,减少重复代码,保持项目一致性。 七、Maven的最佳实践 1. 遵循约定...
总结起来,Maven的依赖管理、聚合、继承和插件运行机制是构建和管理Java项目的重要工具。它们简化了项目的构建流程,提高了代码复用和项目协作的效率。理解并熟练掌握这些概念,对于Java开发者来说至关重要。
Maven的继承与聚合 - **继承(Inheritance)**:子项目可以继承父项目的POM属性,如依赖、构建配置等,减少重复代码。 - **聚合(Aggregation)**:一个项目可以聚合多个子项目,这样可以在一个命令下构建所有子项目。...
7. **聚合与继承**:`aggregation`和`inheriting`特性使得POM可以包含其他POM,从而实现共用部分配置和依赖。这样可以减少重复代码,提高可维护性。 8. **版本控制**:Maven 3.5.4对版本号管理进行了优化,支持...
总结来说,这个"Maven聚合项目"是一个集成了聚合、继承、插件管理和私服使用的实例,展示了如何高效地管理和构建多模块的Java项目。通过这种方式,开发团队可以更有效地协同工作,保证项目的稳定性和一致性。