maven的聚合与继承

一、maven的聚合:

  1.我们可以将多个项目聚合到一起,在聚合项目是需要将<packaging>的值修改为pom使用<modules>进行项目的聚合,如下所示

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.aaa</groupId>

    <artifactId>user-parent</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <!-- 注意此处将原来的jar修改为pom -->

    <packaging>pom</packaging>



    <modules>

        <module>../user-dao</module>

        <module>../user-service</module>

    </modules>

这里使用user-parent整合了user-dao和user-service两个项目,这两个项目中不需要修改任何的东西。

 

二、maven的继承:

 1.在各个子项目中添加<parent>标签生命父项目的信息,继承时会将父项目的所有的信息继承过来,如果jar包相同则以本地的jar包为准,如果想更好的管理jar包,可以将所有的jar包都放在父项目中,在子项目中只需要生命groupId和artifactId就可以了,不需要声明version,如下:

          父项目:

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.aaa</groupId>

    <artifactId>user-parent</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <!-- 注意此处将原来的jar修改为pom -->

    <packaging>pom</packaging>



    <modules>

        <module>../user-dao</module>

        <module>../user-service</module>

    </modules>



    <properties>

        <log4j.version>1.1.3</log4j.version>

        <project.encoding>UTF-8</project.encoding>

    </properties>



    <!-- 这里面声明的依赖关系只有在子项目中被显示的生命才会被继承,这样有利于避免jar包的版本不一致的问题 -->

    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>log4j</groupId>

                <artifactId>log4j</artifactId>

                <version>${log4j.version}</version>

            </dependency>

        </dependencies>

    </dependencyManagement>





</project>

  子项目

<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <artifactId>user-dao</artifactId>

  <packaging>war</packaging>

  <name>user-dao Maven Webapp</name>

  <url>http://maven.apache.org</url>

  

  <parent>

      <groupId>com.aaa</groupId>

      <artifactId>user-parent</artifactId>

      <version>0.0.1-SNAPSHOT</version>

      <relativePath>../user-parent/pom.xml</relativePath>

  </parent>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

    <dependency>

        <groupId>log4j</groupId>

        <artifactId>log4j</artifactId>

    </dependency>

  </dependencies>

  <build>

    <finalName>user-dao</finalName>

  </build>

</project>

这样我们可以有效的减少jar包冲突的现象出现。方便于我们管理项目

 

你可能感兴趣的:(maven)