m2eclipse无法下载Maven构件

8

我最近安装了Eclipse 3.6.1和m2eclipse插件,用于我的现有maven构建,但尝试使其工作时遇到了很多问题。

我的现有Maven项目在命令行下构建良好。

将项目树导入Eclipse后,我对其中一个项目进行了构建。它最终报错:

10/18/10 2:03:02 PM PDT: [DEBUG] 无法从中央仓库 (http://repo1.maven.org/maven2) 获取资源 'org.apache.maven.wagon:wagon-file:jar:1.0-alpha-6' 授权失败:传输失败:代理未授权

命令行下的 Maven 可以无问题地从中央仓库下载。Eclipse可以从 sonatype 站点下载 m2eclipse 插件。
-- 因此,我知道我的代理设置已经工作正常。

但由于某种原因,Eclipse 或 m2eclipse 无法告诉 Maven 正确的代理设置。

我检查了这里的帖子,并尝试删除 *.lastupdated 文件,但没有影响错误。

我该如何解决这个问题?


你在Eclipse下运行了什么目标?在命令行下是否成功执行相同的目标? - Pascal Thivent
目标?我刚刚从项目上下文菜单中选择了“构建项目”。 - Jon
5个回答

2
Eclipse不知道你操作系统中配置的代理信息。这些代理信息可能是从启动服务器获取的,也可以手动配置到系统中。我主要使用Linux,无法解释任何Windows机器如何读取此信息。
命令行中的Maven知道代理信息。Maven命令行可能有shell运行时环境可用于读取代理信息。我猜Eclipse忽略了这个shell运行时环境。
我遇到了这个问题并解决了它。要继续,您需要知道代理IP地址以及代理身份验证信息,例如用户名/密码。您的网络或代理管理员应该为您提供此信息。我使用wireshark进行了嗅探。
顺便说一下,eclise的“安装新软件”和“检查更新”也可能无法正常工作。完成后,它们将正常工作。
此外,在完成此操作后,您还需要手动从本地m2存储库中删除“lastUpdated”文件。我在谷歌上找不到关于这些文件如何使用的太多信息,但当您希望下载一个工件时,它们会妨碍您。
按以下方式打开网络连接首选项:Windows->Preferences->General->Network Connections
将Active Provider设置为Manual。
单击HTTP和HTTPS(可能是SOCKS)的检查按钮。
选择HTTP行并单击Edit。
提供主机IP地址,单击“需要身份验证”,输入用户名和密码。如果您的代理由Windows域管理,则用户名将如下所示:DOMAIN\USERNAME。
重复此操作以HTTPS。
单击OK,OK,OK。
享受吧!

1
根据我的原始帖子所述:“安装新软件无法正常工作” - 否则我就无法安装m2eclipse插件。但是我已经将代理主机名更改为http和https的IP地址 - 错误仍然存在。还有其他想法吗? - Jon

1
我也遇到了与m2eclipse相同的问题。在使用命令行eclipse(使用'compile'目标)验证项目构建后,我还可以使用Run As > Maven Build... > 运行相同目标的m2eclipse构建。然而,默认的Run As > Maven Install仍然失败,显示“错误码407,需要代理身份验证”,这很奇怪,因为配置的代理不需要验证。虽然此错误略有不同,但问题描述非常相似。
现在,当我使用命令行Maven和'install'目标时,m2eclipse的默认构建也成功运行。我没有改变任何配置。更重要的是:一旦我运行了这个命令一次,m2eclipse就没有任何额外依赖的问题了?!
因此,总之:在我看来,m2eclipse中存在一些缺陷,在初始依赖项下载期间与代理通信时会表现出不同的行为。
我希望这个解决方法对你也有效...

1

我遇到了相同的症状(“安装新软件”可以正常工作,从命令行运行的Maven也可以正常工作)。我认为我的代理不需要身份验证-Eclipse的“网络连接”页面中的“本机”提供程序显示Auth=false,并且我的settings.xml在代理配置中具有空的usernamepassword元素。

无论如何,我尝试从我的settings.xml代理配置中完全删除usernamepassword元素,并删除*.lastUpdated文件,现在m2eclipse似乎非常愉快。

我的理论是,如果您指定空元素,则命令行Maven(在我的情况下为2.2.1)不会发送身份验证信息,因此它可以与我的代理一起使用,而m2eclipse中嵌入的Maven 3可能会发送带有空白信息的auth标头,这将被我的代理拒绝。我还没有嗅探流量以确认其中任何内容,所以这只是一个预感。即使是正确的,我也不确定错误在哪里。


1

在编程方面遇到了与代理有关的Eclipse M2问题。

我在首选项/常规/网络连接中设置了正确的代理设置,但这似乎没有什么帮助。

然而,在我将代理用户/密码设置在“settings.xml”中后,一切都正常工作。

在我的情况下,首选项下的代理设置似乎没有任何效果。


好的 - 我在这里有点困惑。如果您在settings.xml中的代理设置不正确,那么您如何下载任何Maven构件来运行构建呢?当我从命令行运行时,我的Maven settings.xml中的代理设置可以正常下载所需内容。 - Jon
就像我说的那样,我遇到了完全相同的问题。命令行模式和m2eclipse下载都可以正常工作,即使是没有用户名/密码的settings.xml也可以。 - lee
一切都运作得很好,直到有些插件无法下载,除非我在settings.xml中设置用户/密码。我甚至使用wireshark捕获了流量,错误返回的是407代理认证错误,根据IT的说法,这基本上意味着登录失败。 - lee

0

在运行Spring Roo应用程序时遇到了这个错误。

(http://repo.spring.io/spring-roo): http://repo.spring.io/的授权失败

将存储库URL协议从http更新为https以使其正常工作。

<repository>
      <id>spring-roo-repository</id>
      <name>Spring Roo Repository</name>
      <url>https://repo.spring.io/spring-roo</url>
</repository>

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