`

maven_聚合和继承

阅读更多
聚合主要是为了解决多个模块一起构建。也就是说在上面的用户项目中,多个模块统一在一个额外的模块来构建整个项目的所有模块。

继承主要是为了解决多个模块重复配置的问题。

下面来看看怎样来修改用户小项目

首选建一个额外模块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聚合与继承"的概念。 **一、Maven聚合(Aggregation)** Maven聚合允许我们将多个独立的Maven项目组织在一起,形成一个单一的构建单元。在我们的示例中,`parent`项目就是一个聚合项目。它...

    Maven3实战视频教程(14集)

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

    maven依赖+继承+聚合

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

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

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

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

    Maven 的聚合和继承特性可以很好地支持这种架构,通过不同的模块分别处理前端和后端的构建,保持项目结构清晰,便于团队协作。 在实践中,我们可能需要创建以下类型的 Maven 子项目: 1. 前端项目:通常使用 ...

    maven聚合和继承

    Maven聚合(Aggregation)是用来管理多个相关项目的方式,这些项目可能共享一部分代码或者有共同的构建目标。在POM中,我们可以通过设置`&lt;modules&gt;`标签来指定一个父项目下的子项目。这样,当我们在父项目执行构建...

    maven_02_parent.zip

    在Java开发领域,Maven...通过以上步骤,我们可以将传统的Web工程转化为Maven的拆分与聚合形式,不仅提升了项目的可维护性,还方便了团队协作和持续集成。这样的结构更符合现代软件开发的模式,便于项目的扩展和升级。

    Maven权威指南_maven_

    Maven的聚合项目可以将多个子项目组合在一起,方便统一构建和管理。继承则允许子项目继承父项目的配置,减少重复配置,提高代码复用。 7. **项目信息报告** Maven可以生成各种项目信息报告,如项目摘要、检查报告...

    apache-maven20210225_maven_

    9. **聚合与继承**:聚合项目允许将多个独立的Maven项目组合在一起,而继承则允许共享POM中的部分配置,减少了重复代码。 10. **持续集成**:Maven与许多持续集成工具(如Jenkins、Travis CI等)集成良好,使得自动...

    maven继承与聚合代码

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

    maven_package 依赖包(完整)

    7. **聚合与继承**:聚合(aggregation)允许一个项目包含其他项目,而继承(inheritance)则使得子项目可以继承父项目的属性和依赖,减少重复配置。 8. **本地仓库**:Maven会将下载的依赖存放在本地仓库,供后续...

    Maven实战2_maven_

    ### Maven的聚合与继承 - **聚合(Aggregation)**:一个POM可以包含多个子项目,形成一个聚合项目,方便整体管理和构建。 - **继承(Inheritance)**:子项目可以继承父项目的配置,减少重复代码,保持配置一致性...

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

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

    apache_maven_3.3.9

    3. **继承与聚合**:Maven 提供了父POM和多模块项目的支持,通过继承,多个子项目可以共享相同的配置。聚合功能允许用户在一个父项目中管理多个子项目,方便整体构建。 4. **版本管理**:Maven 可以处理不同版本的...

    maven_pool.zip

    Maven支持项目聚合与继承,以应对复杂项目结构。聚合项目可以将多个子项目组合在一起,便于统一管理和构建。继承则允许子项目继承父项目的配置,减少重复代码,保持项目一致性。 七、Maven的最佳实践 1. 遵循约定...

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

    总结起来,Maven的依赖管理、聚合、继承和插件运行机制是构建和管理Java项目的重要工具。它们简化了项目的构建流程,提高了代码复用和项目协作的效率。理解并熟练掌握这些概念,对于Java开发者来说至关重要。

    maven_3.6.1.rar

    Maven的继承与聚合 - **继承(Inheritance)**:子项目可以继承父项目的POM属性,如依赖、构建配置等,减少重复代码。 - **聚合(Aggregation)**:一个项目可以聚合多个子项目,这样可以在一个命令下构建所有子项目。...

    maven_3.5.4 版本

    7. **聚合与继承**:`aggregation`和`inheriting`特性使得POM可以包含其他POM,从而实现共用部分配置和依赖。这样可以减少重复代码,提高可维护性。 8. **版本控制**:Maven 3.5.4对版本号管理进行了优化,支持...

    maven聚合项目

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

Global site tag (gtag.js) - Google Analytics