Maven - 父工程的使用与聚合

① 新建一个Maven工程,打包为pom方式,创建Maven父工程;

Maven - 父工程的使用与聚合_第1张图片


② 在子工程pom.xml文件中添加父工程的引用;


    <parent>
        <groupId>com.web.mavengroupId>
        <artifactId>ParentartifactId>
        <version>0.0.1-SNAPSHOTversion>
        
        <relativePath>../Parent/pom.xmlrelativePath>
    parent>

③ 将子工程中与父工程重复的坐标删除

<modelVersion>4.0.0modelVersion>
    

    
    <artifactId>HelloartifactId>
    


只留下artifactId !!!

④ 利用父工程统一管理版本号

若是团队开发,极容易出现版本号冲突现象。可以利用父工程声明版本号,子工程继承。

父工程 pom.xml:

        <dependency> 
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-coreartifactId>
            <version>4.3.4.RELEASEversion> 
            <scope>compilescope>
        dependency>       

子工程,不需要version标签:

        <dependency> 
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-coreartifactId>

            <scope>compilescope>
        dependency>       

看到这里,有人可能会想。那么我在父工程中依赖了spring-core。4.3.4.RELEASE.jar,子工程是否不需要显示依赖,就可以继承使用呢?

No!!!No!!!

如下图,子工程中注释掉该jar的依赖:

Maven - 父工程的使用与聚合_第2张图片

Maven Dependencies 中无Spring jar包的依赖!


打开注释:

Maven - 父工程的使用与聚合_第3张图片

可以看到有了Spring jar,其中注释并没有打开version 与 scope。version继承了父工程的,scope默认是compile!

即,子工程的pom.xml可以如下所示:

 
    <dependency>
      <groupId>org.mybatisgroupId>
      <artifactId>mybatisartifactId>
    dependency>
    <dependency>
      <groupId>org.mybatisgroupId>
      <artifactId>mybatis-springartifactId>
    dependency>

只显示groupId和artifactId,默认scope为compile!!!


⑤ 利用properties标签升级版本号

如果要想版本升级呢?项目中几个框架的jar可是有几十个!即使引用父工程版本号,那么父工程也要手动改几十个!!!

下面使用properties标签:

  • 在properties标签内使用自定义标签统一声明版本号
 <properties>
    <spring.version>4.3.4.RELEASEspring.version>
  properties>
  • 在需要统一版本的位置,使用${自定义标签名}引用声明的版本号
        dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-coreartifactId>
            <version>${spring.version}version>

            <scope>compilescope>
        dependency>

Tips:凡是需要统一声明后再引用的场合都可以使用这种方法!!

这样升级版本,只需要改properties标签内的值就可以!


注意:

配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!


⑥ 聚合

作用:一键安装各个模块工程。

  
  <modules>
     
    <module>../Hellomodule>
    <module>../HelloFriendmodule>
    <module>../MakeFriendsmodule>
  modules>

在父工程的pom.xml文件中右键 run as - maven install 可批量安装工程。

你可能感兴趣的:(Maven)