2010-10-18 41 views
7

我最近安装了eclipse 3.6.1和m2eclipse插件,用于我现有的maven版本,但即时通讯遇到了很多问题,试图使其工作。m2eclipse不会下载maven artifacts

我现有的maven项目可以在命令行中正常工作。

将我的项目树导入eclipse之后,我运行了其中一个项目的构建。它最终死于此错误:

10/18/10 2:03:02 PM PDT:[DEBUG]无法获取资源'org.apache.maven.wagon:wagon-file:jar:1.0-alpha- (http://repo1.maven.org/maven2)授权失败:转移失败:未通过代理授权

Maven从命令行可以从中央下载没有问题的东西。
Eclipse能够从sonatype网站下载m2eclispe插件。
- 基于此,我知道我的代理设置正在工作。

但由于某种原因,eclipse或m2eclipse无法告诉maven正确的设置。

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

我该如何解决这个问题?

+0

你在eclipse下运行了什么目标?在命令行中完全相同的目标是否成功? – 2010-10-18 22:52:52

+0

目标?我刚刚从项目上下文菜单 – Jon 2010-10-18 23:27:00

+0

编辑过的文章中选择了“Build project”,以便清晰起见 – Jon 2010-10-20 18:53:08

回答

2

Eclipse不知道配置到您的操作系统中的代理信息。代理信息在您的系统启动期间可能来自引导服务器,或者手动配置到您的系统中。我主要使用linux,并且无法解释如何通过任何风格的Windows机器读取这些信息。

Maven从命令行了解代理信息。命令行中的Maven可能具有可用于读取代理信息的shell运行时环境。我猜Eclipse会忽略这个shell运行时环境。

我遇到了这个问题,并解决它如下。要继续,您需要知道您的代理IP地址,以及您的代理认证信息,如用户名/密码。您的网络或代理管理员应该为您提供此功能。我用wireshark探听电线。

顺便说一句,eclise的“安装新软件”和“检查更新”也可能不起作用。他们会在这之后。

另外,完成此操作后,您需要手动从本地m2存储库中删除'lastUpdated'文件。我无法找到有关如何使用这些文件的很多信息,但是当您希望下载一个工件时,它们会遇到阻碍。

打开网络连接的喜好是这样的:Windows的>首选项 - >常规 - > NetworkConnections

设置为活动提供者手册。

单击HTTP和HTTPS(也许是SOCKS)的复选按钮。

选择HTTP行并单击编辑。

提供主机IP地址,点击'需要验证',输入用户名和密码。如果您的代理由Windows域管理,则用户名将如下所示:DOMAIN \ USERNAME。

对于HTTPS重复。

单击确定,确定,确定。

去镇上。

+1

,正如我的原始文章中所述:“安装新软件无法工作” - 否则我将无法安装m2eclipse插件。但我将代理主机名更改为http和https的IP地址 - 错误是相同的。任何其他想法? – Jon 2010-10-20 18:50:39

1

在代理服务器中发现了这个同样的eclipse m2问题。

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

但是,在我在“settings.xml”中设置了我的代理用户/密码之后,所有内容都起作用了。

似乎在首选项下的代理设置对我的情况没有影响。

+0

好吧 - 我在这里困惑。如果你的代理设置在设置中。xml是不正确的,你是如何下载任何maven工件来运行你的构建?我的maven settings.xml中的代理设置在从命令行运行时可以很好地下载。 – Jon 2010-11-02 17:00:46

+0

就像我说的,我的行为完全一样。命令行模式和m2eclipse下载甚至可以在settings.xml中使用“no”用户名/密码。 – lee 2010-11-03 01:58:17

+0

它像一个魅力一直工作,直到一些插件只是不会下载,除非我在settings.xml中设置用户/密码。我甚至用wireshark捕获流量,返回的错误是一个407代理认证错误,根据IT的基本意思,主要是登录失败。 – lee 2010-11-03 02:14:15

1

我有同样的症状(“安装新软件”工作正常,Maven从命令行工作正常)。我不相信我的代理需要身份验证 - Eclipse的“网络连接”页面中的“Native”提供程序说Auth = false,我的settings.xml在代理配置中有空的usernamepassword元素。

不管怎样,我想从我的settings.xml代理配置完全移除usernamepassword元素,并删除​​文件,现在的m2eclipse似乎完全满意。我的理论是,如果你指定空元素,那么命令行Maven(2.2.1在我的情况下)不会发送认证信息,所以它可以和我的代理一起工作,而嵌入在m2eclipse中的Maven 3可能会发送auth头文件,但空白信息被我的代理拒绝。我没有嗅过交通确认这一切,所以这只是一种预感。即使这是对的,我也不确定谁是错。

1

我和m2eclipse有同样的问题。验证我的项目是使用命令行eclipse(使用'compile'目标)构建的,我也可以使用m2eclipse构建相同的目标(使用Run As> Maven Build ...>)。但是,默认的运行方式> Maven安装仍然失败,错误代码407,需要代理验证,这很奇怪,因为配置的代理不需要验证。虽然这个错误稍有不同,但问题描述是非常相似的。

现在,当我使用带有'install'目标的命令行Maven时,m2eclipse默认构建也成功运行。我没有改变一点配置。更重要的是:一旦我跑了一次,m2eclipse没有问题的任何额外的依赖??

因此得出结论:在我看来,m2eclipse存在一些缺陷,使得它在初始依赖性下载期间与代理进行通信时表现不同。

我希望这个解决方法也适用于你......