首页 > 其他分享 >Maven继承

Maven继承

时间:2023-10-09 21:47:30浏览次数:32  
标签:maven 工程 继承 创建 module Maven pom

继承

说明

Maven工程之间,A 工程继承 B 工程

  • B 工程:父工程
  • A 工程:子工程

本质上是 A 工程的 pom.xml 中的配置继承了 B 工程中 pom.xml 的配置。

作用

在父工程中统一管理项目中的依赖信息,具体来说是管理依赖信息的版本。

它的背景是:

  • 对一个比较大型的项目进行了模块拆分。
  • 一个 project 下面,创建了很多个 module。
  • 每一个 module 都需要配置自己的依赖信息。

它背后的需求是:

  • 在每一个 module 中各自维护各自的依赖信息很容易发生出入,不易统一管理。
  • 使用同一个框架内的不同 jar 包,它们应该是同一个版本,所以整个项目中使用的框架版本需要统一。
  • 使用框架时所需要的 jar 包组合(或者说依赖信息组合)需要经过长期摸索和反复调试,最终确定一个可用组合。这个耗费很大精力总结出来的方案不应该在新的项目中重新摸索。

通过在父工程中为整个项目维护依赖信息的组合既保证了整个项目使用规范、准确的 jar 包;又能够将以往的经验沉淀下来,节约时间和精力。

操作

  1. 创建父工程
    创建的过程和前面创建 pro01-maven-java 一样。

    工程名称:pro03-maven-parent

    工程创建好之后,要修改它的打包方式:

    <groupId>com.atguigu.maven</groupId>
    <artifactId>pro03-maven-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <!-- 当前工程作为父工程,它要去管理子工程,所以打包方式必须是 pom -->
    <packaging>pom</packaging>
    

    只有打包方式为 pom 的 Maven 工程能够管理其他 Maven 工程。打包方式为 pom 的 Maven 工程中不写业务代码,它是专门管理其他 Maven 工程的工程。

  2. 创建模块工程

    模块工程类似于 IDEA 中的 module,所以需要进入 pro03-maven-parent 工程的根目录,然后运行 mvn archetype:generate 命令来创建模块工程。
    假设,我们创建三个模块工程:

  3. 查看被添加新内容的父工程 pom.xml
    下面 modules 和 module 标签是聚合功能的配置

    <modules>  
        <module>pro04-maven-module</module>
        <module>pro05-maven-module</module>
        <module>pro06-maven-module</module>
    </modules>
    
  4. 解读子工程的pom.xml

    <!-- 使用parent标签指定当前工程的父工程 -->
    <parent>
        <!-- 父工程的坐标 -->
        <groupId>com.atguigu.maven</groupId>
        <artifactId>pro03-maven-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    
    <!-- 子工程的坐标 -->
    <!-- 如果子工程坐标中的groupId和version与父工程一致,那么可以省略 -->
    <!-- <groupId>com.atguigu.maven</groupId> -->
    <artifactId>pro04-maven-module</artifactId>
    <!-- <version>1.0-SNAPSHOT</version> -->
    

标签:maven,工程,继承,创建,module,Maven,pom
From: https://www.cnblogs.com/yuxl94/p/17753228.html

相关文章

  • Maven
    一、Maven加载原理Maven工具会根据pom模型(pom.xml)加载当前项目需要使用的资源。每次加载都是从本机某个指定的文件夹去加载。如果本机文件夹中没有这个资源,会从Maven远程服务器中下载到本机文件夹,Maven再去加载本机文件夹中资源。专业概念:中央仓库(CentralRepository):Maven......
  • maven多模块版本统一管理
    maven多模块版本统一管理结构:父模块子1模块依赖子2模块子2模块父模块定义<project><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-p......
  • 用Artifactory管理内部Maven仓库
    1.介绍Maven是Java开发者中流行的构建工具,Maven的好处之一是可以帮助减少构建应用程序时所依赖的软件构件的副本,Maven建议的方法是将所有软件构件存储于一个叫做repository的远程仓库中。Maven会从ibiblio.org中的公用仓库中同步构件,这个公用仓库下载缓慢、不稳定,并且......
  • 在Eclipse中使用Maven 2.x指南
    1.Maven2RepositoryEclipse需要知道Maven的本地仓库的路径。所以,类路径变量M2_REPO必须设置。执行以下命令:mvn-Declipse.workspace=<path-to-eclipse-workspace>eclipse:add-maven-repo 你也可以在eclipse内定义一个新的classpath变量:从菜单条,选择Window>Preferences,选择jav......
  • Java11配置maven
    这里假设Java11和maven都正确安装,使用的版本为Java11、maven3.6.1测试环境变量Javawin+r打开运行,输入cmd,打开命令行提示符,输入java--version如下C:\Users\siyu>java--versionopenjdk11.0.22019-01-15OpenJDKRuntimeEnvironment18.9(build11.0.2+9)OpenJDK64-......
  • IEDA 中Maven 编译错误 Compilation failure的解决方法
    IEDA中Maven提示编译错误Compilationfailure 检查发现项目虽然已经配置了JDK11,但是却引用的是JRE1.5解决方法:1、修改maven的setting.xml文件中添加下面的配置: <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>......
  • IDEA搭建maven环境
    原文链接:https://www.longkui.site/program/java/idea-maven/4699/重装电脑后,需要重新搭建maven环境,所以写下这篇文章记录一下。首先,下载maven:maven官网:Maven–WelcometoApacheMaven打开后点击“download”然后找到zip包进行下载:如果你要下载低版本的maven,请参考这......
  • maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories
    原文链接:https://www.longkui.site/error/maven-default-http-blocker-http-0-0-0-0-blocked-mirror-for-repositories/4659/0.背景给新电脑配置maven环境,然后执行mvncleaninstall的时候开始报错,maven-default-http-blocker(http://0.0.0.0/):Blockedmirrorforrepositor......
  • 如何下载低版本的maven
    原文链接:https://www.longkui.site/program/java/maven525/4661/重新配置maven,需要下载maven,但是官网默认下载的是最新版,最新版不一定适合你,所以,我们一般会下载一些旧版的maven包,这篇文章简单介绍一下如何下载旧版本的maven。我们打开maven官网:Maven–WelcometoApacheMave......
  • maven命令
    mvnpackage生成target目录,编译、测试代码,生成测试报错,生成jar/war文件mvncompile表示进行编译,会将代码编译到target文件夹中mvninstall 运行安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用Maveninstall安装指令,其做了两件事情:1.将项目打包(jar/war),将打包结......