找不到父项目xxxxx:pom:2.0-快照



我有一个父项目 xxx-third,它只有一个声明一些依赖项和构建配置的 pom。

在我将其部署到 nexus 并且我可以在 nexus web 中找到它之后,我将这个 xxx-thrid 声明为 myProject 的父项目。

Howerver,我仍然有 maven 错误抱怨 Cound 找不到工件 com.myCom:xxx-third:pom:2.0-SNAPSHOT @ com.myCom:myProject。

但是如果我使用代码在本地安装,问题就会解决,这很烦人!为什么以及如何解决它?

这是因为此项目位于本地计算机上的本地.m2存储库中,但无法由生成服务器从远程存储库下载。 本地回复在路径中:

{USER_HOME}.m2repository

您可以将所需的依赖项从本地存储库复制到构建服务器上的本地存储库,然后它将从本地存储库读取 jar 依赖项,而不是从远程存储库获取它。

您的父 POM 未解析。有三种选择可以解决此问题:

1( 将父 POM 添加到本地存储库

2(向子POM添加一个指向父POM的relativePath(仅在源代码位于同一存储库中的多模块项目中才有意义(

<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<relativePath>...</relativePath>
</parent>

3( 将存储库配置添加到您的设置中.xml(例如,如果您有公司范围的 POM,则有意义(

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<profiles>
<profile>
...
<repositories>
...
</repositories>
...
</profile>
</profiles>
...

据我了解,3(是您的解决方案。另请参阅: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html https://maven.apache.org/settings.html

最新更新