ChatGPT解决这个技术问题 Extra ChatGPT

Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 from/to central (http://repo1.maven.org/maven2)

I have created a new maven project in SpringSource Tool Suite. I am getting this error in my new maven project.

Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 from http://repo1.maven.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.plugins:maven-surefire-plugin:pom:2.7.1 from/to central (http://repo1.maven.org/maven2): Connect times out

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>

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">
  <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>

Please note that I am able to build it.Error is showing in pom.xml inside IDE .Any solutions?

Are you behind the proxy?
Do you need to set a proxy?
Are you sure you are not behind a proxy?
Show us the output of mvn help:effective-settings as well as your pom.xml.
running it from IDE(STS)

c
carlspring

Simplify things by using the following 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>

Under Linux/Unix, place it under ~/.m2/settings.xml. Under Windows place it under c:\documents and settings\youruser\.m2\settings.xml or c:\users\youruser\.m2\settings.xml.

You don't need the <mirrors/>, <profiles/> and <settings/> sections, unless you really know what they're for.


Thanks for helping.But still getting same error.Note that I am able to build it .error is only in the IDE.
Okay, then. In your IDE make sure it's pointing to the same settings.xml file, as your proxy settings are not getting picked up by your IDE apparently.
I got the same issue when I restarted eclipse in office. It was working fine when I was working from home. So it had to do with proxy settings for corp network. After creating the settings.xml file the way it is described , it worked like charm.
v
vitaliis

This is solved for me when I update maven and check the option "Force update of Snapshots/Releases" in Eclipse. this clears all errors. So right click on project -> Maven -> update project, then check the above option -> Ok. Hope this helps you.

Addition : uncheck "Refresh workspace resources from local filesystem", it's working for me.


Thanks it worked for me. I copied eclipse from one machine to another and the maven local cache seems to be the issue behind it for me. When I updated the sanpshot, it worked for me.
couldn't see this option in my versino of elcipse (photon)
Sometimes the address of the proxy has changed and we do not know.
I have faced the issue: Failure to transfer xalan:xalan:jar:2.7.1 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 xalan:xalan:jar:2.7.1 from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org. But resolved by Force Update of Snapshots/Releases.
L
Lii

It seems like your Maven is unable to connect to Maven repository at http://repo1.maven.org/maven2.

If you are using proxy and can access the link with browser the same settings need to be applied to Spring Source Tool Suite (if you are running within suite) or Maven.

For Maven proxy setting create a settings.xml in the .m2 directory with following details

<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>

If you are not using proxy and can access the link with browser, remove any proxy settings described above.


S
Sam R.

For the first error you can simply clear your local repository cache to force it download from main repository rather than checking the local one.

For second error, if you are behind proxy you should configure it this way Configuring a proxy otherwise you have a network problem now.


NP. Do you see the error in your POM or in Maven console?
Error is showing in pom.xml .<project xmlns="maven.apache.org/POM/4.0.0" xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="maven.apache.org/POM/4.0.0 maven.apache.org/xsd/maven-4.0.0.xsd">
s
smali

To me the solution was just deleted the specific folder which is giving the error from ~/.m2/repository/org/hsqldb/

After deleting the hsqldb folder I have build the project and everything is fine.


This worked for me too. I am using STS. Nothing else worked like Maven-update-force... or settings.xml. In my case the reported error was for maven-surefire-plugin. I deleted this folder which was located at .m2/repository/apache/org/maven/plugins/maven-plugins. After that I cleaned the project and it removed the error in pom.xml
v
vsm

What helped me were the suggestions by @carlspring (create a settings.xml to configure your http proxy):

<?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>

AND then refreshing eclipse project maven as suggested by @Peter T :

"Force update of Snapshots/Releases" in Eclipse. this clears all errors. So right click on project -> Maven -> update project, then check the above option -> Ok. Hope this helps you.


É
Étienne Miret

It seems me there was a network issue. On your side, or on Maven side, or anywhere in the middle. Just try again later.

If the error is permanent, check your network settings. If you are behind a proxy, you need the following in you ~/.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>

it helped me. but the interesting thing is that only one of Maven plugins (site) needed this proxy setting. and I don't even included them in my pom (just the maven compiler), so not sure why do they even needed to be downloaded..
F
Fabich

Try to use https in repo url: https://repo1.maven.org/maven2

If you use jdk1.7 or above and your network restrict protocols to newer TLS version then enable TLS1.2: -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2


P
Puce

I strongly recommend to use a Maven Repository Manager such as Nexus. It will help you to get stable and reproducible builds with Maven. As the Repository Manager is usually in your LAN, you don't have to configure the proxy settings, but you need to define some other configurations:

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

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


t
thepolina

I started using maven on my machine first time in while. Got this error: Could not transfer artifact from/to central (https://repo.maven.apache.org/maven2) No such file or directory Cleaned up ~/.m2/repository directory. Don't experience this problem again


C
Community

If none of the above works then try and go this question and answer: Maven error "Failure to transfer..."

and delete your .lastUpdated files.


C
Caffeine Coder

Update Maven Project and check the option "Force update of Snapshots/Releases", it will remove errors. If not, Maven clean and install the Project. Still the error isn't removed, repeat step 1.

It worked for me :)


G
Goddard

This can also happen when using an old version of Java that isn't capable of communicating properly with the HTTPS protocol that is now required. Version 8 and above should work as of the time writing this.


Saved me some time. Thank you!
u
user3123372

If you are in windows os and dont need any proxy then delete the whole proxy setting

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

and replace with

<proxies/> 

and then do a maven clean build


r
reg

We have the Proxy set on company level.

After disabling proxy in Internet Explorer this issue was solved (looks like it is then disabled on 'system' level), so all other browsers will pick this change too.

Now I can issue MVN commands from CMD prompt and I have no problem while e.g.

"Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom"

...that was causing 'Build failure'

Disabling proxy in IE needs to be done on daily basis in our case, because on each system start it gets set


S
Saikat

This problem was solved by following steps -

Go to the local m2 repository and find the directory org/apache/maven/plugins/maven-surefire-plugin. Delete the problematic version. maven update the project, then download it again.


L
LiNKeR

For me it was File > Settings > ... > BuildTools > Maven > Work Offline[■]


M
Meg

On IntelliJ go to Preference -> Build, Execution, Deployment -> Build Tools -> Maven. Turn on the checkbox for "Always update snapshots" apply and save changes then do mvn clean install


i
iQuestProgrammer

You can try to set the proxy settings:

File -> Settings -> Appearance -> System Settings -> Http proxy -> Auto Detect

And then provide the proxy URL.


S
Shuvankar Sarkar

If you are not behind any proxy and still getting connection timeout error, please check firewall settings/ antivirus. Sometimes firewall may block the connectivity from any tool (like Eclipse/STS etc..)


J
JuanCarlos Romero

I changed the java version from 1.7 to 1.8 and it worked


H
Hassan Shahzad

The issue is that since maven 3.8.1, they stopped tranferring via HTTP. The simplest solution that worked for me is to simply go to the pom.xml file and under the repository that you are importing, simply replace HTTP with HTTPS. It should work for you.


P
Purva

Right-click on the project. Go to Maven Update project, then check the above option “Force update of Snapshot/Releases“


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now