【发布时间】:2020-06-05 14:44:37
【问题描述】:
我正在创建一个包含父 pom 的 maven 模块。这个父工件存储在一个 nexus maven 存储库中。我将 nexus 存储库添加到我的 settings.xml 中。
现在,如果我正在构建我的子模块,我会遇到错误:
Could not find artifact test:my.parent:pom:1.0
似乎默认情况下不使用settings.xml。如果我添加
<repositories><repository><id>random</id><url>http://test/repository/maven-releases/</url></repository></repositories> to my childs pom 一切正常,使用 settings.xml 并找到父工件。
我是否遗漏了默认情况下将使用 settings.xml 的任何内容,或者这是预期的行为? 我不想将这个随机 repo 标签添加到我的每个子 pom 中。
父 Pom:
<groupId>test</groupId>
<artifactId>my.parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
模块Pom:
<parent>
<groupId>test</groupId>
<artifactId>my.parent</artifactId>
<version>1.0</version>
</parent>
<artifactId>my.module</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
settings.xml
<settings>
<mirrors>
<mirror>
<id>Nexus</id>
<url>http://mynexus:8081/repository/maven-group/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<settings
【问题讨论】:
-
只是想知道,您将 settings.xml 放在哪里?通常应该在
${user.home}/.m2/settings.xml -
是的,
settings.xml放在${user.home}/.m2/下 -
你是从命令行还是从 IDE 调用 maven? IDE 通常捆绑 maven,它有自己的 settings.xml 文件。
-
都试过了。 IntelliJ IDEA 和 mvn 通过命令行。两者都不起作用。如果我使用
mvn help:effective-settings,则表明已加载正确的settings.xml -
您是否检查过该工件是否可以在您的存储库管理器中的给定坐标下找到?存储库是否放置在
maven-group中?基于错误消息Could not find artifact test:my.parent:pom:1.0?