97

我在 SpringSource Tool Suite 中创建了一个新的 maven 项目。我在我的新 Maven 项目中遇到了这个错误。

从http://repo1.maven.org/maven2传输 org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 失败 被缓存在本地仓库,直到更新间隔才会重新尝试解析中央已过或强制更新。原始错误:无法从/到中央传输工件 org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 ( http://repo1.maven.org/maven2 ):连接超时

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test.app</groupId>
  <artifactId>TestApp</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>TestApp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

设置.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <pluginGroups>
  </pluginGroups>
 <proxies>
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>user</username>
      <password>pass</password>
      <host>ip</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>    
  </proxies> 
  <servers>  
  </servers>
    <mirrors>   
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>    
  </mirrors>  
<profiles>
 </profiles>
</settings>

请注意,我能够构建它。错误显示在 IDE 内的 pom.xml 中。任何解决方案?

4

21 回答 21

76

通过使用以下内容来简化事情settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              http://maven.apache.org/xsd/settings-1.0.0.xsd">

 <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>user</username>  <!-- Put your username here -->
      <password>pass</password>  <!-- Put your password here -->
      <host>123.45.6.78</host>   <!-- Put the IP address of your proxy server here -->
      <port>80</port>            <!-- Put your proxy server's port number here -->
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts> <!-- Do not use this setting unless you know what you're doing. -->
    </proxy>    
  </proxies> 
</settings>

在 Linux/Unix 下,将其放在~/.m2/settings.xml. 在 Windows 下,将其放在c:\documents and settings\youruser\.m2\settings.xml或下c:\users\youruser\.m2\settings.xml

您不需要<mirrors/>,<profiles/><settings/>部分,除非您真的知道它们的用途。

于 2013-03-11T10:06:00.663 回答
72

当我更新 maven 并在 Eclipse 中选中“强制更新快照/发布”选项时,这为我解决了。这将清除所有错误。所以右键单击 project -> Maven -> update project然后检查上面的选项-> Ok。希望这对您有所帮助。

另外:取消选中“从本地文件系统刷新工作空间资源”,它对我有用。

于 2014-05-27T10:36:30.403 回答
27

您的 Maven 似乎无法连接到http://repo1.maven.org/maven2上的 Maven 存储库。

如果您使用代理并且可以使用浏览器访问链接,则需要将相同的设置应用于 Spring Source Tool Suite(如果您在套件中运行)或 Maven。

settings.xml对于 Maven 代理设置,在目录中创建一个.m2具有以下详细信息的目录

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>PROXY</host>
      <port>3120</port>
      <nonProxyHosts>maven</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

如果您没有使用代理并且可以使用浏览器访问链接,请删除上述任何代理设置。

于 2013-03-11T09:05:12.617 回答
6

对于第一个错误,您可以简单地清除本地存储库缓存以强制它从主存储库下载,而不是检查本地存储库。

对于第二个错误,如果您在代理后面,您应该以这种方式配置它配置代理,否则您现在有网络问题。

于 2013-03-11T08:56:42.570 回答
6

对我来说,解决方案只是删除了给出错误的特定文件夹~/.m2/repository/org/hsqldb/

删除hsqldb文件夹后,我已经构建了项目,一切都很好。

于 2015-08-25T11:46:47.413 回答
6

@carlspring 的建议对我有帮助(创建一个 settings.xml 来配置您的 http 代理):

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              http://maven.apache.org/xsd/settings-1.0.0.xsd">

 <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>user</username>  <!-- Put your username here -->
      <password>pass</password>  <!-- Put your password here -->
      <host>123.45.6.78</host>   <!-- Put the IP address of your proxy server here -->
      <port>80</port>            <!-- Put your proxy server's port number here -->
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts> <!-- Do not use this setting unless you know what you're doing. -->
    </proxy>    
  </proxies> 
</settings>

然后按照@Peter T 的建议刷新 eclipse 项目 maven:

Eclipse 中的“强制更新快照/发布”。这将清除所有错误。所以右键单击项目-> Maven -> 更新项目,然后检查上面的选项-> 确定。希望这对您有所帮助。

于 2016-04-12T23:29:08.357 回答
5

看来我有一个网络问题。在你这边,或者在 Maven 这边,或者在中间的任何地方。稍后再试。

如果错误是永久性的,请检查您的网络设置。如果您在代理后面,则需要在 ~/.m2/settings.xml 中包含以下内容:

<proxies>
    <proxy>
        <id>optional</id>
        <active>true</active>
        <protocol>http</protocol>
        <username>proxyuser</username>
        <password>proxypass</password>
        <host>proxy.host.net</host>
        <port>80</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
</proxies>
于 2013-03-11T08:53:44.480 回答
4

尝试在 repo url 中使用 https:https://repo1.maven.org/maven2

如果您使用 jdk1.7 或更高版本并且您的网络将协议限制为较新的 TLS 版本,则启用 TLS1.2:-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

于 2020-10-29T20:16:45.840 回答
3

我强烈建议使用 Maven 存储库管理器,例如 Nexus。它将帮助您使用 Maven 获得稳定且可重复的构建。由于 Repository Manager 通常在您的 LAN 中,您不必配置代理设置,但您需要定义一些其他配置:

http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html

http://maven.apache.org/repository-management.html

于 2013-03-11T09:03:23.570 回答
3

我第一次开始在我的机器上使用 maven。收到此错误:Could not transfer artifact from/to central (https://repo.maven.apache.org/maven2) No such file or directory 已清理 ~/.m2/repository 目录。不要再遇到这个问题

于 2016-09-22T04:31:38.077 回答
2

如果上述方法均无效,请尝试回答以下问题: Maven 错误“传输失败...”

并删除您的.lastUpdated文件。

于 2016-05-25T10:36:05.597 回答
2
  1. 更新 Maven 项目并选中“强制更新快照/发布”选项,它将删除错误。
  2. 如果没有,Maven 清理并安装项目。
  3. 错误仍未消除,请重复步骤 1。

它对我有用:)

于 2017-03-22T11:20:15.457 回答
2

当使用无法与现在需要的 HTTPS 协议正确通信的旧版 Java 时,也会发生这种情况。在撰写本文时,版本 8 及更高版本应该可以工作。

于 2019-08-05T15:13:45.897 回答
1

如果您在 Windows 操作系统中并且不需要任何代理,则删除整个代理设置

<proxies>
    <proxy>
   ..................
    </proxy>    
  </proxies> 

并替换为

<proxies/> 

然后做一个 maven clean build

于 2016-05-10T17:48:40.313 回答
1

通过以下步骤解决了此问题 -

  1. 转到本地 m2 存储库并找到目录 org/apache/maven/plugins/maven-surefire-plugin。
  2. 删除有问题的版本。
  3. maven 更新项目,然后重新下载。
于 2017-03-30T09:26:36.463 回答
1

我们在公司级别设置了代理。

在 Internet Explorer 中禁用代理后,此问题已解决(看起来它随后在“系统”级别被禁用),因此所有其他浏览器也会选择此更改。

现在我可以从 CMD 提示符发出 MVN 命令,我没有问题,例如

“下载:https ://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom ”

...这导致“构建失败”

在我们的案例中,需要每天在 IE 中禁用代理,因为在每个系统启动时都会设置它

于 2017-07-28T10:18:56.980 回答
1

对我来说是File > Settings > ... > BuildTools > Maven > Work Offline[■]

于 2020-03-12T07:22:30.950 回答
1

在 IntelliJ 上,转到首选项 -> 构建、执行、部署 -> 构建工具 -> Maven。打开“始终更新快照”复选框应用并保存更改,然后执行 mvn clean install

于 2020-03-31T06:48:27.313 回答
1

您可以尝试设置代理设置:

文件 -> 设置 -> 外观 -> 系统设置 -> Http 代理 -> 自动检测

然后提供代理 URL。

于 2020-08-07T08:45:30.320 回答
0

如果您没有使用任何代理并且仍然出现连接超时错误,请检查防火墙设置/防病毒。有时防火墙可能会阻止来自任何工具(如 Eclipse/STS 等)的连接。

于 2017-05-28T07:58:32.387 回答
0

我将 java 版本从 1.7 更改为 1.8 并且它有效

于 2022-02-16T16:37:12.960 回答