Maven - 父工程的使用与聚合

简介: Maven - 父工程的使用与聚合

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

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

<!-- 子工程中声明父工程 -->
    <parent>
        <groupId>com.web.maven</groupId>
        <artifactId>Parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 -->
        <relativePath>../Parent/pom.xml</relativePath>
    </parent>

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

<modelVersion>4.0.0</modelVersion>
    <!--公司或组织域名倒序+项目名-->
<!--    <groupId>com.atguigu.maven</groupId> -->
    <!-- 项目名不是类名-->
    <artifactId>Hello</artifactId>
    <!-- 版本号 -->
<!--    <version>0.0.1-SNAPSHOT</version> -->
只留下artifactId !!!

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

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

父工程 pom.xml:

        <dependency> 
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.4.RELEASE</version> 
            <scope>compile</scope>
        </dependency>       

子工程,不需要version标签:

        <dependency> 
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
<!--            <version>4.3.4.RELEASE</version> -->
            <scope>compile</scope>
        </dependency>       

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

No!!!No!!!

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

Maven Dependencies 中无Spring jar包的依赖!

打开注释:


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

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

 <!-- mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
    </dependency>

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

⑤ 利用properties标签升级版本号

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

下面使用properties标签:

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

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

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

注意:

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

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

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

⑥ 聚合

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

  <!-- 配置聚合,点击run as - maven install -->
  <modules>
     <!--相对路径-->
    <module>../Hello</module>
    <module>../HelloFriend</module>
    <module>../MakeFriends</module>
  </modules>

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


目录
相关文章
|
6月前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
67 0
|
5月前
|
Java Maven
maven 工程pom依赖优化及常用命令
maven 工程pom依赖优化及常用命令
69 0
|
7月前
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
1132 6
【超全详解】Maven工程配置与常见问题解决指南
|
6月前
|
SpringCloudAlibaba Java Maven
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
|
6月前
|
Java 应用服务中间件 API
eclipse创建 maven-web工程
eclipse创建 maven-web工程
|
7月前
|
Java 项目管理 Maven
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
Maven的聚合和继承是Java开发中重要的概念。聚合允许将多个项目组合成一个构建单元,简化多模块项目的构建过程,提高构建效率。继承则让子项目重用父项目的配置和属性,避免了重复定义,增强了项目的一致性和可维护性。通过聚合和继承,Maven为多模块项目的构建和管理提供了高效且灵活的支持,减少了配置冗余,提升了开发效率。
144 0
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
|
7月前
|
IDE Java 数据库连接
maven篇2:手动创建maven工程
maven篇2:手动创建maven工程
maven篇2:手动创建maven工程
|
7月前
|
Java Maven 开发者
Maven高级-聚合与继承 私服(图文并茂)
Maven高级-聚合与继承 私服(图文并茂)
75 0
|
7月前
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
64 0