首页 > 其他 > 详细

Maven学习-优化和重构POM

时间:2017-04-03 20:34:36      阅读:308      评论:0      收藏:0      [点我收藏+]

在一个复杂的项目中,项目的各个模块存在各种相互依赖关系。优化一个多模块项目的POM最好通过几步来做。总的来说,我们总是寻找一个POM中的重复或者多个兄弟POM中的重复。在多模块项目中依赖重复的模式主要包括①:一些依赖在多个模块中被生命;②有一些依赖关系是关联的,共享同样的版本③:兄弟模块依赖和兄弟模块版本的重复。Maven提供简单的机制能让你将所有的依赖重构到一个父POM。重复的依赖声明很难保证一个大项目中版本的一致性。我们可以找出所有被应用一次以上的依赖,然后将其向上移动到父POM的dependencyMangement片段。如下所示:

技术分享
<?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.netease.parent</groupId>
    <artifactId>demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0.3-RELEASE</version>
    <modules>
        <module>demo-child</module>
    </modules>

    <properties>    
        <commons-logging.version>1.2</commons-logging.version>
        <commons-io.version>2.4</commons-io.version>    
        ...
    </properties>

    <dependencyManagement>
        <dependencies>        
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${commons-logging.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            ...
        </dependencies>
    </dependencyManagement>
</project>
View Code

在这些依赖配置被上移后,我们需要移除子模块的依赖版本,否则会覆盖定义在父项目的依赖。如下:

技术分享
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    ...    
</dependencies>
View Code

为降低依赖重复主要使用了两种优化①:上移共同的依赖至dependencyMangement②为兄弟项目使用内置的项目version和groupId。

Maven学习-优化和重构POM

原文:http://www.cnblogs.com/wxgblogs/p/6663563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!