Maven parent.relativePath 说明

这里日记一下 关于Maven非常基础的问题: Maven parent.relativePath 的意思,很多人网上搜索 类似下面pom.xml中的问题 ,文件中的

<relativePath /> <!-- lookup parent from repository  --> 

是什么意思?

    <parent>
        <groupId>com.middol</groupId>
        <artifactId>webbase-dependency-management</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

网上大多数回到如下:

设定一个空值将始终从仓库中获取,不从本地路径获取,如<relativePath />
Maven parent.relativePath
默认值为../pom.xml
查找顺序:relativePath元素中的地址–本地仓库–远程仓库

部分 Java 菜鸟或是一部分老鸟竟然也懵逼
答案第一行 :

设定一个空值将始终从仓库中获取,不从本地路径获取,如<relativePath />  

然后又开始问 : 仓库 是哪一个仓库 !?

我就纳闷了搜什么百度,自己测试一下不就好了吗,另外直接点击进去看原生说明啊,下面是 xml 原生英文解释:

      <xs:element name="relativePath" minOccurs="0" type="xs:string" default="../pom.xml">
        <xs:annotation>
          <xs:documentation source="version">4.0.0</xs:documentation>
          <xs:documentation source="description">
            The relative path of the parent &lt;code&gt;pom.xml&lt;/code&gt; file within the check out.
            The default value is &lt;code&gt;../pom.xml&lt;/code&gt;.
            Maven looks for the parent pom first in the reactor of currently building projects, then in this location on
            the filesystem, then the local repository, and lastly in the remote repo.
            &lt;code&gt;relativePath&lt;/code&gt; allows you to select a different location,
            for example when your structure is flat, or deeper without an intermediate parent pom.
            However, the group ID, artifact ID and version are still required,
            and must match the file in the location given or it will revert to the repository for the POM.
            This feature is only for enhancing the development in a local checkout of that project.
          </xs:documentation>
        </xs:annotation>
      </xs:element>

读一读英文,不行字典翻译翻译,然后自己做下实验 得出如下结论:

  1. relativePath 是Maven为了寻找父模块pom.xml所额外增加的一个寻找路径
  2. relativePath 默认值为 …/pom.xml
  3. Maven 寻找父模块pom.xml 的顺序如下:
    (1)  first in the reactor of currently building projects
          这里一个maven概念 反应堆(reactor ),
          意思就是先从工程里面有依赖相关的模块中找你引入的
          parent 的pom.xml,
        
    (2) then in this location on the filesystem
         然后从 你定义的  <relativePath > 路径中找,
         当然你如果只是 /  即空值,则跳过该步骤,  
         默认值 ../pom.xml 则是从上级目录中找啦。

    (3)  then the local repository
       这个就不说了,如果 (1) (2) 步骤没有则从 本地仓库找啦。

    (4) and lastly in the remote repo
     这个还用说吗,上面都找不到了,最后只能从远程仓库找啦,再找不到就报错给你看 
  • 37
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
'parent.relativePath' 是一个在Maven或类似构建工具中出现的错误。这个错误通常是由于项目的pom.xml文件中父级项目的相对路径(relativePath)指向了一个错误的本地POM文件引起的。解决这个错误的方法取决于你的具体项目和构建工具。以下是一些可能的解决步骤: 1. 检查父级项目的相对路径:打开你的项目的pom.xml文件,找到父级项目的相关配置(通常在 <parent> 标签中)。查看 <relativePath> 元素的值,确保它指向了父级项目的正确本地路径。 2. 确保父级项目的本地POM存在:确认你的本地仓库中是否存在父级项目的POM文件。你可以在本地仓库的 .m2/repository 目录下找到对应的父级项目文件夹,检查其中是否包含正确的POM文件。如果不存在,可能需要重新下载或构建父级项目。 3. 更新父级项目的相对路径:如果父级项目的相对路径指向了错误的本地POM文件,你可以尝试更新它指向正确的路径。根据你的项目结构,你可以使用相对路径或绝对路径来指向正确的父级项目的POM文件。使用绝对路径可能会更准确,但请注意在不同环境中可能会出现解析问题。 4. 更新依赖管理插件:如果你在使用Maven或类似的构建工具,并且遇到了这个错误,你可以尝试更新你的构建工具或依赖管理插件的版本。有时候这个错误可能是由于插件版本不兼容或存在bug导致的。 5. 清理本地仓库:如果上述步骤仍然没有解决问题,你可以尝试清理你的本地仓库。删除本地仓库中与父级项目相关的文件夹,然后重新构建项目,以便重新下载和安装依赖。 请根据你的具体情况尝试上述解决方法,以解决 'parent.relativePath' 错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [遇到:parent.relativePath points at wrong local POM 错误应该如何解决](https://blog.csdn.net/q7w8e9r4/article/details/132097114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值