在安装CloudStack于Ubuntu时,解决构建时依赖项的错误。

12

我正在Ubuntu上安装CloudStack,它使用Maven来解决其依赖项。当我运行mvn -P deps命令时,出现以下错误:

[ERROR] The build could not read 1 project -> [Help 1] 
[ERROR]    
[ERROR]   The project org.apache.cloudstack:cloudstack:4.2.0 (/home/cloud/apache-cloudstack-4.2.0-src/pom.xml) has 1 error 
[ERROR]     Non-resolvable parent POM: Could not transfer artifact org.apache:apache:pom:11 from/to central (http://repo.maven.apache.org/maven2): repo.maven.apache.org: Name or service not known and 'parent.relativePath' points at wrong local POM @ line 14, column 11: Unknown host repo.maven.apache.org: Name or service not known -> [Help 2] 
[ERROR] 

我已经搜索了错误并尝试了多次更改pom.xml文件,但是我仍然没有找到解决方案。我不知道是什么导致了这个错误。

任何建议或最微小的帮助都将受到赞赏。谢谢。


你还遇到这个问题吗?解决方法是什么? - Donal Lafferty
4个回答

17

这是一个网络问题:

您的构建机无法访问http://repo.maven.apache.org/maven2

请在命令行使用wget检查您是否能够访问该网站。例如:

root@mgmtserver:~/cm# wget http://repo.maven.apache.org/maven2
--2013-10-14 16:33:24--  http://repo.maven.apache.org/maven2
Resolving repo.maven.apache.org (repo.maven.apache.org)... 185.31.19.184, 185.31.19.185
Connecting to repo.maven.apache.org (repo.maven.apache.org)|185.31.19.184|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://central.maven.org/maven2/ [following]
--2013-10-14 16:33:24--  http://central.maven.org/maven2/
Resolving central.maven.org (central.maven.org)... 185.31.19.184, 185.31.19.185
Reusing existing connection to repo.maven.apache.org:80.
HTTP request sent, awaiting response... 200 OK
Length: 967 [text/html]
Saving to: `maven2'

100%[=====================================================>] 967         --.-K/s   in 0s

2013-10-14 16:33:24 (74.4 MB/s) - `maven2' saved [967/967]

wget 失败的原因可能包括:

  1. Maven仓库暂时不可用,请等待其恢复正常。
  2. 构建机器上没有网络适配器,请确保它能够访问网络。
  3. 代理设置不正确。可以尝试这个解决方案,或者参考Maven迷你指南中的代理设置

背景信息:

Apache CloudStack的POM.xml从Apache Software Foundation Parent POM继承了预定义值。因此,Maven构建首先从网络位置下载所需的POM,并将其存储在本地的Maven仓库中,这是一种本地缓存。

最后的备注:

如果您感兴趣,可以在这里查看正在下载的POM的源代码。


我尝试了使用wget,我能够访问该网站。因此这可能不是问题所在。你能否提供其他解决方案?谢谢。 - user2871856
尝试使用Apache CloudStack开发者邮件列表。其他开发人员可能最近也遇到了这个问题。 - Donal Lafferty
谢谢DONAL。你指出了问题,但我找不到.m2目录,所以我就放弃了。但我仍然想知道.m2目录在哪里。 - user2871856
我已添加了缺失的信息,以便您可以接受答案。干杯。 - Donal Lafferty

4

我曾经遇到过同样的问题,并成功解决了。如果你遇到了相同的问题,那么这个答案难道不应该被标记为被采纳吗?这将有助于其他用户快速解决这个问题。 - Dilini

1
如果您遇到此问题,但同时可以使用浏览器访问网址,则在运行mvn install之前进行mvn clean可能会解决问题。这种方法解决了我的问题。

1
我不知道为什么,但既然这个方法对我有效,我就分享出来,希望能节省其他人的时间:
我使用的是其他人之前用过的Windows7系统,我发现以下路径下的settings.xml文件中包含以下行: %MAVEN_HOME% \ conf \
<localRepository>C:/m2/repository</localRepository>

我猜测您希望在不同用户之间共享一个代码库。
这就是问题所在,因为当我将那一行改为以下内容时:
<localRepository>C:/Users/my_user_name/.m2/repository</localRepository>

它开始完美地工作了!从命令行,从Eclipse与外部Maven,以及从Eclipse与嵌入式Maven。

在此之前,没有任何构件解析是有效的。

可能与根文件夹下的写入权限有关...

希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接