在一个复杂的项目中,项目的各个模块存在各种相互依赖关系。优化一个多模块项目的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

相关文章: