我最近安装了eclipse 3.6.1,m2eclipse插件与我现有的maven构建一起使用,但我遇到了很多问题,试图让它工作。
我现有的maven项目从命令行构建得很好。
将项目树导入eclipse后,我在其中一个项目上运行了构建。它最终因这个错误而死:
10/18/10 2:03:02 PM PDT:[DEBUG]无法从资源库中心获取资源'org.apache.maven.wagon:wagon-file:jar:1.0-alpha-6'({{ 3}})授权失败:转移失败:未经代理授权
来自命令行的Maven可以从中心下载内容而不会出现问题 Eclipse能够从sonatype网站下载m2eclispe插件 - 基于此,我知道我的代理设置正在运行。
但由于某些原因,eclipse或m2eclipse无法告诉maven正确的设置。
我检查了帖子http://repo1.maven.org/maven2,并尝试删除* .lastupdated文件,但这对错误没有影响。
我该如何解决这个问题?
答案 0 :(得分:2)
Eclipse不知道配置到操作系统中的代理信息。代理信息在系统引导期间可能来自引导服务器,或者手动配置到系统中。我主要使用linux,无法解释任何风味的Windows机器如何读取这些信息。
来自命令行的Maven知道代理信息。来自命令行的Maven可能具有可用于读取代理信息的shell运行时环境。我想Eclipse会忽略这个shell运行时环境。
我遇到了这个问题并按如下方式解决了这个问题。要继续,您需要知道您的代理IP地址,以及代理验证信息,如用户名/密码。您的网络或代理管理员应该可以使用此功能。我用wireshark偷了电线。
顺便说一下,eclise的“安装新软件”和“检查更新”可能也不起作用。他们将在此之后。
此外,完成此操作后,您将需要从本地m2存储库中手动删除“ lastUpdated ”文件。我找不到关于如何使用这些文件的google的大量信息,但是当你希望下载工件时它们会受到妨碍。
以这种方式打开网络连接首选项:Windows-> Preferences-> General-> NetworkConnections
将Active Provider设置为Manual。
单击HTTP和HTTPS的检查按钮(可能是SOCKS)。
选择HTTP行,然后单击编辑。
提供主机IP地址,单击“需要身份验证”,输入用户名和密码。如果您的代理由Windows域管理,则用户名将如下所示:DOMAIN \ USERNAME。
重复HTTPS。
单击“确定”,“确定”,“确定”。
去城里。
答案 1 :(得分:1)
遇到了与代理相同的eclipse m2问题。
我在首选项/常规/网络连接中有正确的代理设置。 但这似乎没有任何帮助。
然而,在我在“settings.xml”中设置我的代理用户/密码后,一切都工作了。
似乎偏好下的代理设置对我的情况没有影响。
答案 2 :(得分:1)
我有相同的症状(“安装新软件”工作正常,Maven从命令行工作正常)。我不相信我的代理需要身份验证 - Eclipse的“网络连接”页面中的“原生”提供程序说Auth = false
,我的settings.xml
为空username
和{{1}代理配置中的元素。
无论如何,我尝试完全删除password
代理配置中的username
和password
元素,并删除settings.xml
文件,现在m2eclipse似乎非常高兴。
我的理论是,如果指定空元素,那么命令行Maven(在我的情况下为2.2.1)不会发送身份验证信息,因此它可以与我的代理一起使用,而m2eclipse中嵌入的Maven 3可能会发送身份验证标题,但有空白信息,我的代理拒绝。我没有嗅到交通来证实这一点,所以这只是一种预感。即使它是对的,我也不确定谁有过错。
答案 3 :(得分:1)
我和m2eclipse有同样的问题。在验证我的项目是使用命令行eclipse(使用'compile'目标)构建之后,我还可以使用m2eclipse来构建具有相同目标(使用Run As> Maven Build ...>)。但是,默认运行方式> Maven Install仍然因“错误代码407,需要代理身份验证”而失败,这很奇怪,因为配置的代理不需要身份验证。虽然这个错误略有不同,但问题描述非常类似。
现在,当我使用带有'install'目标的命令行Maven时,m2eclipse默认构建也成功运行。我没有改变一点配置。更重要的是:一旦我运行了一次,m2eclipse没有任何额外的依赖性问题?!
总而言之:在我看来,m2eclipse中存在一些缺陷,使得它在初始依赖下载期间与代理进行通信时表现不同。
我希望这个解决方法也适合你......
答案 4 :(得分: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>