为什么需要在settings.xml文件中指定存储库

埃里克·B。

我遇到了一个从未遇到过的奇怪的Maven配置问题,并对解决方案感到困惑。

我有一个本地Nexus服务器,可以用作所有内容的镜像。到目前为止,我的settings.xml文件中只有以下镜像:

    <mirrors>
            <mirror>
                    <id>nexus</id>
                    <mirrorOf>*</mirrorOf>
                    <name>WADA Nexus</name>
                    <url>https://nexus.domain.org/repository/Public/</url>                                                                                               
            </mirror>
    </mirrors>

但是,我最近想创建自己的自定义父pom,并将其部署到Nexus存储库中。在我的项目中,我已指向我的父pom:

   <parent>
            <groupId>org.domain</groupId>
            <artifactId>root-pom</artifactId>
            <version>1.0.0-SNAPSHOT</version>
    </parent>

但是,当我现在尝试运行我的构建时,它失败并显示以下内容:

ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact org.domain:root-pom:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 9, column 10

由于某些原因,maven并未尝试在Nexus存储库中查找父pom。

我唯一的解决方法是在settings.xml文件中定义一个随机存储库值:

 <repositories>
    <repository>
      <id>nexus</id>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
        <checksumPolicy>warn</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
        <checksumPolicy>fail</checksumPolicy>
      </snapshots>
      <url>https://www.google.com/anythingCanGoHere</url>
      <layout>default</layout>
    </repository>
  </repositories>

由于我已经镜像了所有Repos / URL,因此可以将该URL设置为任何值,并且maven现在将获取我的父pom。

那么,为什么我什至根本不需要指定存储库?Maven是否不应该自动尝试针对Maven Central或其他默认存储库来解析父pom?

迈克尔·奥

这不是一个奇怪的配置问题,而仅仅是您的误解。您要做的是填充<distributionManagement/>父POM,并在settings.xml本地Nexus实例中添加一个万能的镜像,并希望它能正常工作。

您实际上知道您正在镜像吗?没有!Maven中的默认硬编码存储库是Maven Central。这是一个不包含任何快照的版本库。因此,您会看到ERROR为了使Maven能够从您的Nexus实例请求快照,必须使用伪造的仓库,否则它将仅请求发布。Nexus依次拥有一个包含Central的存储库组以及您托管的版本和快照存储库。

只要您没有在POM中定义任何快照存储库(您不应该这样做),Maven就永远无法下载任何快照。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

Java:为什么需要在浮点文字中指定'f'?

来自分类Dev

为什么需要在UITableViewCell中指定redirectIdentifier?

来自分类Dev

为什么需要在绑定中指定 ElementName 和 DataContext?

来自分类Dev

为什么需要在此C ++模板中指定类型?

来自分类Java

为什么需要在Java源文件中转义unicode?

来自分类Java

为什么需要在接口中指定参数名称?

来自分类Java

为什么我们需要在Spring中指定HttpMessageConverter?

来自分类Dev

为什么我需要在Swift的类中指定变量的类型?

来自分类Dev

为什么我需要在 C 中指定引用和指针而不是普通变量

来自分类Dev

为什么不需要在构造函数中指定变量?

来自分类Dev

为什么我不需要在邮件中指定SMTP服务器?

来自分类Dev

为什么我们需要在fdisk中指定分区类型,然后再在mkfs中指定分区类型?

来自分类Dev

为什么我需要在 18.04 中启用 `universe` 存储库 - 它不是默认启用的吗?

来自分类Dev

为什么需要在每个存储过程之前包括连接文件

来自分类Dev

在POST的情况下,为什么需要在response_with中指定:location => some_url(@object)

来自分类Dev

为什么我们需要在Rust中指定所有依赖项(包括传递对象)?

来自分类Dev

为什么需要在主成分分析中指出要保留的成分数?

来自分类Dev

为什么需要在ERD中指出已识别或未识别的关系?

来自分类Dev

什么时候需要在EF的DbContext中指定DbSet?

来自分类Dev

如果知道lib的路径,为什么要在Visual Studio中指定特定的库?

来自分类Java

为什么我们需要在<persistence-unit>元素内指定类?

来自分类Dev

为什么我们需要在Android应用中存储Goefence数据?

来自分类Dev

为什么要在S3上进行主动存储需要使用“ region”字段?

来自分类Dev

为什么需要在链接列表中存储下一个项目指针

来自分类Dev

为什么需要在Rails中迁移测试数据库?

来自分类Dev

为什么类<:<[-From,+ To]需要在scala标准库中扩展(从=>到)?

来自分类Dev

为什么需要在我们的应用程序中刷新数据库视图?

来自分类Dev

为什么我们需要在C ++头文件中使用“ #if defined Identifier”?

来自分类Dev

为什么需要在“最终”内关闭文件并仍将其嵌入在“尝试/捕获”块内?

Related 相关文章

  1. 1

    Java:为什么需要在浮点文字中指定'f'?

  2. 2

    为什么需要在UITableViewCell中指定redirectIdentifier?

  3. 3

    为什么需要在绑定中指定 ElementName 和 DataContext?

  4. 4

    为什么需要在此C ++模板中指定类型?

  5. 5

    为什么需要在Java源文件中转义unicode?

  6. 6

    为什么需要在接口中指定参数名称?

  7. 7

    为什么我们需要在Spring中指定HttpMessageConverter?

  8. 8

    为什么我需要在Swift的类中指定变量的类型?

  9. 9

    为什么我需要在 C 中指定引用和指针而不是普通变量

  10. 10

    为什么不需要在构造函数中指定变量?

  11. 11

    为什么我不需要在邮件中指定SMTP服务器?

  12. 12

    为什么我们需要在fdisk中指定分区类型,然后再在mkfs中指定分区类型?

  13. 13

    为什么我需要在 18.04 中启用 `universe` 存储库 - 它不是默认启用的吗?

  14. 14

    为什么需要在每个存储过程之前包括连接文件

  15. 15

    在POST的情况下,为什么需要在response_with中指定:location => some_url(@object)

  16. 16

    为什么我们需要在Rust中指定所有依赖项(包括传递对象)?

  17. 17

    为什么需要在主成分分析中指出要保留的成分数?

  18. 18

    为什么需要在ERD中指出已识别或未识别的关系?

  19. 19

    什么时候需要在EF的DbContext中指定DbSet?

  20. 20

    如果知道lib的路径,为什么要在Visual Studio中指定特定的库?

  21. 21

    为什么我们需要在<persistence-unit>元素内指定类?

  22. 22

    为什么我们需要在Android应用中存储Goefence数据?

  23. 23

    为什么要在S3上进行主动存储需要使用“ region”字段?

  24. 24

    为什么需要在链接列表中存储下一个项目指针

  25. 25

    为什么需要在Rails中迁移测试数据库?

  26. 26

    为什么类<:<[-From,+ To]需要在scala标准库中扩展(从=>到)?

  27. 27

    为什么需要在我们的应用程序中刷新数据库视图?

  28. 28

    为什么我们需要在C ++头文件中使用“ #if defined Identifier”?

  29. 29

    为什么需要在“最终”内关闭文件并仍将其嵌入在“尝试/捕获”块内?

热门标签

归档