pom中parent标签使用

maven的核心就是pom.xml,使用maven是为了更好的帮项目管理包依赖。如果要引入一个jar包,需要在pom文件中加上<dependency></dependency>就可以依赖相应的jar包。

场景一,有两个web项目W1、W2,一个java项目J1,依赖同一个jar包:domain.jar。如果分别在各自pom文件中引入common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目中依赖越多修改越多。此时就可以使用parent标签, 可以创建一个parent项目,打包类型为pom,parent项目中没有任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对domain.jar的依赖,W1W2J1三个子项目中只需要定义<parent></parent>,parent标签中写上parent项目的pom坐标就可以引用到domain.jar了。

场景二,有一个springweb.jar,只有W1W2两个web项目需要,J1项目是java项目不需要,那么又要怎么去依赖。如果W1W2中分别定义对springweb.jar的依赖,当springweb.jar版本变化时修改起来不方便。解决办法是在parent项目的pom文件中使用<dependencyManagement></dependencyManagement>将springweb.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用

<dependency>

    <groupId></groupId>

      <artifactId></artifactId>

</dependency>

标签中写上springweb.jar的坐标,不需要写版本号,可以依赖到这个jar包了。这样springweb.jar的版本发生变化时只需要修改parent中的版本就可以了。

父pom文件:

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

    <groupId>com.demo</groupId>
    <artifactId>demo-platform-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0-SNAPSHOT</version>

    <name>demo-platform-parent</name>
    <url>http://demo.com</url>

    <properties>
        <junit.version>4.12</junit.version>
       
        <spring.version>4.3.8.RELEASE</spring.version>
    </properties>

    
    <dependencyManagement>
       
            <!-- TEST begin -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
                <scope>test</scope>
            </dependency>
 
        </dependencies>
    </dependencyManagement>

</project>

子pom:

<dependencies><dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>

 </dependency></dependencies>

猜你喜欢

转载自blog.csdn.net/fz13768884254/article/details/87936528
今日推荐