Maven错误“无法转移…”


285

我正在尝试使用Maven(m2eclipse)设置项目,但在Eclipse中出现此错误:

说明资源路径位置类型无法计算构建计划:无法从http://repo1.maven.org/maven2传输org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 缓存在本地存储库,直到中心的更新间隔或强制更新之前,不会重新尝试解析。原始错误:无法从/到中央((http://repo1.maven.org/maven2)传输工件org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 :60000 ExampleProject之后未收到响应未知的Maven问题

有任何想法吗?如果您可以向我展示如何检查所有配置是否正常,这将很有帮助...

Answers:


718

删除所有失败的下载:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

对于Windows:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

然后在Eclipse中右键单击您的项目,然后选择Maven->“更新项目...”,确保在出现的对话框中选中“更新依赖项”,然后单击“确定”。


6
在Windows中,我使用资源管理器对话框在%USERPROFILE%\。m2中搜索* .lastUpdated,然后删除了Eclipse报告为有问题的文件。工作请客!我确定您可以使用findstr或类似方法来完成此操作,但GUI可以正常工作。
Mark McDonald

4
在Windows中,我打开一个Windows资源管理器,然后右键单击.m2-> Search ...。我在文件名中添加了* .lastUpdated,在“文件中的单词或短语”文本框中输入了“无法传输”。
rajah9 2012年

4
在Windows中,这些文件位于内部<user-dir>/.m2/repository/org/example/myTool/1.01(您会发现窍门)。只需*.lastUpdated手动删除它们()并更新依赖项。
Cedric Reichenbach

2
在Windows上的Eclipse Luna(4.4里程碑)下,我发现删除* .lastUpdated之后,我还需要获取m2eclipse来对本地存储库重新编制索引(通过Eclipse-> Window-> Preferences-> Maven-> User Settings:Local Repository:Reindex)
gb96 2014年

2
经过数小时的
梳理

71

这在Windows中也对我有用。

  1. 找到{user} /。m2 /存储库(在此处使用Juno / Win7)
  2. 在窗口右上方的“搜索”字段中,键入“ .lastupdated”。Windows将在目录的所有子文件夹中查找这些文件。(我没有浏览缓存。)
  3. 通过右键单击>删除将它们删除(我保留了所有lastupdated.properties)。
  4. 然后返回Eclipse,右键单击该项目,然后选择Maven> Update Project。我选择了“强制更新快照/发布”。单击“确定”,依赖关系最终正确解决。

1
还发现如果您对库的引用(语法或版本号)不正确,它们将不会下载。使用Maven在线存储库搜索工具来确保您在pom.xml中正确引用了库。
iowatiger08年

这适用于Windows。非常感谢男人!但是这个问题有时会再次发生。我们有永久性的解决方法吗?
LINGS 2013年

@ iowatiger08如果同时删除了lastupdated.properties文件,会发生什么情况?
garg10may

@ garg10may我认为删除它们不会有什么大不了的,因为Maven在执行下一个“更新”时会重新填充它们。
iowatiger08 '02

@ iowatiger08,如果我在pom文件中使用<version> [1.0.0,2.0.0)</ version>这样的版本,则会出错,但是我将版本更改为1.6.10,该错误消失了。为什么会这样?
gfan

32

在Eclipse中:右键单击项目-> Maven->更新项目->复选框“强制更新快照/发布”。单击确定。


17

感谢您的答复,但经过更多搜索后,我得以解决问题。原来,我不得不删除“ * .lastUpdated”之一,这阻止了我的一个插件(Maven Surefire插件)进行更新。我手动完成此操作,因为显然不是Maven清理人员。

问题是插件的“ * .lastUpdated”文件阻止了Maven检查更新,并且不允许下载必要的jar。


4
也许很明显,但是我想补充一下:在maven存储库中手动查找指定的* .lastUpdated文件(在我的情况下为surefire的文件)并删除它之后,必须在Eclipse中清理项目。
superjos 2011年

15

尝试执行

mvn -U clean

或从Eclipse中的项目上下文菜单运行>运行Maven Clean and Maven>更新快照


9

就我而言。问题是同样的原因。我看到问题出在代理和防火墙上。

这里是我的解决方案
Fisrt方法:
1.安装Maven和Eclipse的Proxy
2.转到找到{user} /。m2 / repository并删除所有* .lastupdated文件
3.回到Eclipse,右键单击项目,然后选择Maven>更新项目。>选择“强制更新快照/发布”。

如果项目仍然存在错误。示例:以上所有步骤后,这就是我的问题

Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven:maven-archiver:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): Connect timed out

我使用此解决方案对我有用:
1.在https://mvnrepository.com/中 找到存储库
。2.将依赖项复制到项目示例的* .poml

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-archiver</artifactId>
    <version>2.5</version>
</dependency>


3.建立项目。缺少的依赖项将下载到本地存储库。
4.返回Eclipse,右键单击项目,然后选择Maven> Update Project。>选择“强制更新快照/发布”。
= >>已解决错误
5.完成并解决后,我在步骤2中删除了依赖项。完成


7

这在Windows中对我有用:

  1. 找到 {user}/.m2/repository
  2. 在窗口右上方的“搜索”字段中,输入“ .lastupdated”。Windows将在目录的所有子文件夹中查找这些文件。
  3. 删除所有.lastupdated文件。
  4. 返回Eclipse,右键单击项目并选择Maven > Update Project
  5. 选择“ Force Update of Snapshots/Releases”。
  6. 单击确定,依赖关系将最终正确解决。

6

我发生在Iam在防火墙后面的时候。在Eclipse IDE中运行时,有时不下载依赖项。确保mvn clean install -U用于解决问题。之后,您将看到依赖项下载。


在终端上执行此操作后,转到Eclipse,选择项目,然后选择“刷新项目”。这应该解决该问题,而不会引入查找和删除“ .lastUpdated”的困难。
爱德华·吉

5

如果您位于代理之后,则必须更新settings.xml文件(在MAVEN_HOME的conf文件夹下,该文件本身包含有关代理设置的信息),此外,您可能需要更新Eclipse Network Settings(窗口->偏好设置...->键入网络连接)。

尝试使用-X或--debug以获得调试输出,这可以提供有关该问题的其他信息。


3

我在带有m2eclipse的Eclipse 3.6中遇到了类似的问题。

无法计算构建计划:无法从http://repo1.maven.org/maven2传输org.apache.maven.plugins:maven-resources-plugin:jar:2.4.3 缓存在本地存储库中,解决方案不会重新尝试,直到中央的更新间隔过去或强制更新为止。原始错误:无法从中央(http://repo1.maven.org/maven2)传输工件org.apache.maven.plugins:maven-resources-plugin:jar:2.4.3:ConnectException project1未知的Maven问题

从我的本地存储区删除所有maven * .lastUpdated文件(如Deepak Joy所建议的)解决了该问题。


2

我的工作区中只有几个项目也遇到了类似的问题。具有几乎相同的POM的其他项目完全没有错误。列出的其他答案均未解决我的问题。我最终偶然发现为每个项目删除/重新应用Maven本质,错误消失了:

对于每个带有pom的项目,其中包含“不会重新尝试解析...”错误:

  1. 右键单击Eclipse中的项目,然后选择Maven- > Disable Maven Nature
  2. 右键单击Eclipse中的项目,然后选择配置 -> 转换为Maven项目

2

发生在我身上的还有你可能有两个解决方案

  1. 如果您的项目中包含某些外部或项目特定的依赖项,则必须手动将其添加到位于C:\ Users \ Mohit.Singh.m2 \ repository文件夹的M2 repo文件夹中,然后必须运行 mvn eclipse: Eclipse,然后 从项目文件夹中执行mvn clean install

  2. 如果您没有任何wxternal或项目特定的依赖关系,则可以将项目作为现有maven项目导入到eclipse中, 然后右键单击项目->转到maven->单击更新项目,将出现一个窗口,请检查强制快照下载选项并点击确定


2

在Eclipse中提供正确的Maven setting.xml路径。

  • Windows->首选项-> Maven->用户设置

在用户设置文本框中输入正确的setting.xml路径


在Eclipse Maven首选项中也添加Maven安装
Gunwant

1

只需删除中的原型即可maven local repository。如上所述,它在原型下载失败的情况下发生。


1

对我来说,我只是在POM.xml文件中添加了下面的xml代码。在我右键单击项目-> Maven->更新项目之后,我检查了快照/发布的强制更新**,并且一切正常

    <dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

0

settings.xml代理?在Eclipse中有maven global \ local配置文件,添加settings.xml


2
您可以编辑答案并添加更多详细信息吗?举例说明要添加的内容settings.xml以及可以在哪里找到它。另外,请记住,这个问题已经有10个月了。
Brigand

0

您可以删除.m2文件夹本身,并强制MyEclipse重新启动时重新下载所有依赖项。转到窗口>首选项> MyEclipse> Maven4MyEclipse。


0
  • 由于从maven存储库中删除了“ maven-compiler-plugin 2.0.2”,因此发生上述错误。
  • 对我来说,当我将“ maven-compiler-plugin”降级到2.0或2.0.1版本时,上述错误得到解决。

-1

适用于我的解决方案如下:

  1. 将依赖项复制到pom。

    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-archiver</artifactId>
        <version>2.5</version>
    </dependency>
  2. 在项目上单击鼠标右键

  3. 选择Maven
  4. 选择更新项目
  5. 选择强制更新快照/发行版

-2

请首先确保.m2文件夹中的settings.XML文件有效,然后在cmd中使用以下命令清理存储库后

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.