我有一个父项目xxx-third,它只有一个pom,声明了一些依赖项和构建配置。
在将其部署到nexus并且我可以在nexus web中找到它之后,我将这个xxx-thrid声明为myProject的父项目。
Howerver,我仍然有maven错误抱怨Cound找不到神器com.myCom:xxx-third:pom:2.0-SNAPSHOT @ com.myCom:myProject。
但如果我在本地安装代码,问题就会解决,这很烦人!为什么以及如何解决它?
答案 0 :(得分:0)
这是因为此工件位于本地计算机上的本地.m2
存储库中,但是无法通过构建服务器从远程存储库下载。
当地的repostiory在路上:
{USER_HOME}\.m2\repository\
您可以将所需的依赖项从本地存储库复制到构建服务器上的本地存储库,然后它将从本地存储库中读取jar依赖项,而不是从远程存储库中获取它。
答案 1 :(得分:0)
您的父POM未解决。有三种方法可以解决这个问题:
1)将父POM添加到本地存储库
2)将一个relativePath添加到指向父POM的子POM(仅在源位于同一存储库的多模块项目中才有意义)
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<relativePath>...</relativePath>
</parent>
3)将存储库配置添加到settings.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