Java Maven,拒绝访问:http://repo1.maven.org/maven2
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18495426/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Maven, Access denied to: http://repo1.maven.org/maven2
提问by Vovan
I have just downloaded last version of Maven.
我刚刚下载了 Maven 的最新版本。
And when i am trying to run
当我试图跑步时
mvn archetype:generate
mvn 原型:生成
i get error message
我收到错误信息
[WARNING] Error reading archetype catalog http://repo1.maven.org/maven2org.apache.maven.wagon.authorization.AuthorizationException: Access denied to: http://repo1.maven.org/maven2, ReasonPhrase:Denied Access. at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:928) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.downloadCatalog(RemoteCatalogArchetypeDataSource.java:119) at org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.getArchetypeCatalog(RemoteCatalogArchetypeDataSource.java:87) at org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:216) at org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:205) at org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.getArchetypesByCatalog(DefaultArchetypeSelector.java:200) at org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.selectArchetype(DefaultArchetypeSelector.java:71) at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:197) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) [WARNING] No archetype found in remote catalog. Defaulting to internal catalog [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
[警告] 错误读取原型目录 http://repo1.maven.org/maven2org.apache.maven.wagon.authorization.AuthorizationException:访问被拒绝:http: //repo1.maven.org/maven2, ReasonPhrase:拒绝访问。在 org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:928) 在 org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) 在 org.apache.maven.wagon .StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.downloadCatalog(RemoteCatalogArchetypeDataSource.java:119) ) 在 org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.getArchetypeCatalog(RemoteCatalogArchetypeDataSource.java:87) 在 org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:216) 在 org.archetype.org. DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:205) 在 org。invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org. codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) [警告] 在远程目录中找不到原型。默认为内部目录 [INFO] 未定义原型。使用 maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) [警告] 在远程目录中找不到原型。默认为内部目录 [INFO] 未定义原型。使用 maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) [警告] 在远程目录中找不到原型。默认为内部目录 [INFO] 未定义原型。使用 maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
I have not Proxy and internet works fine. Firewall is turned off. How to solve this problem ?
我没有代理,互联网工作正常。防火墙已关闭。如何解决这个问题呢 ?
Thx for your help.
谢谢你的帮助。
If we look to the class org.apache.maven.wagon.shared.http4.AbstractHttpClientWagonmethod fillInputData( InputData inputData ) we can see this:
如果我们查看类org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon方法 fillInputData( InputData inputData ) 我们可以看到:
public void fillInputData( InputData inputData )
throws TransferFailedException, ResourceDoesNotExistException,AuthorizationException
{
....
HttpResponse response;
....
statusCode = response.getStatusLine().getStatusCode();
....
switch ( statusCode )
{
case HttpStatus.SC_OK:
break;
case HttpStatus.SC_NOT_MODIFIED:
// return, leaving last modified set to original value so getIfNewer should return unmodified
return;
case SC_NULL:
{
TransferFailedException e =
new TransferFailedException( "Failed to transfer file: " + url + reasonPhrase );
fireTransferError( resource, e, TransferEvent.REQUEST_GET );
throw e;
}
case HttpStatus.SC_FORBIDDEN: // <---------THIS
fireSessionConnectionRefused();
throw new AuthorizationException( "Access denied to: " + url + reasonPhrase);
....
}
...
}
So problem caused because we have HTTP 403 Forbidden error in response.But i dont know what to do...
所以问题是因为我们有 HTTP 403 Forbidden 错误响应。但我不知道该怎么办...
So now we know that we are getting FORBIDDEN error because we have not User-Agent in HTTP request. Thanx to Patouche
所以现在我们知道我们收到 FORBIDDEN 错误,因为我们在 HTTP 请求中没有 User-Agent。感谢帕图什
采纳答案by Chopstick
It seems as though directory browsing on http://repo1.maven.org/maven2has been switched off. I had to resort to getting the archetype catalog myself. I did this:
似乎http://repo1.maven.org/maven2上的目录浏览已关闭。我不得不求助于自己获取原型目录。我这样做了:
mvn archetype:generate -DarchetypeCatalog=http://search.maven.org/remotecontent?filepath=archetype-catalog.xml
Alternatively I guess you could just download the archetype-catalog.xml file from that link and place it in your .m2 directory as mentioned in this comment:
或者,我想您可以从该链接下载 archetype-catalog.xml 文件并将其放置在您的 .m2 目录中,如本评论所述:
回答by dermoritz
it seem to work with maven 2 (reproduced the problem on 3 machines linux and windows with maven 3.05 and maven 3.1)
它似乎适用于 maven 2(使用 maven 3.05 和 maven 3.1 在 3 台机器 linux 和 windows 上重现该问题)
the problem occurs only for the repo1... urls. If you delete your local repository, all plugin downloads will work fine until the download of archetype catalog - "access denied"
问题只发生在 repo1... urls 上。如果您删除本地存储库,则所有插件下载都将正常工作,直到下载原型目录 - “访问被拒绝”
回答by Shan Arshad
Execute this Command. It will not only create your maven project but also resolve the issue of downloading archetype jar. It is mainly due to unavailability to the archetype URL.
执行此命令。它不仅会创建您的 maven 项目,还会解决下载原型 jar 的问题。这主要是由于原型 URL 不可用。
Fill Project Group Id with your project names.
用您的项目名称填写项目组 ID。
mvn archetype:generate -DgroupId={Project Group Id} -DartifactId={Project Id} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=http://search.maven.org/remotecontent?filepath=archetype-catalog.xml
mvn archetype:generate -DgroupId={Project Group Id} -DartifactId={Project Id} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog= http://search.maven.org/remotecontent?filepath=archetype-目录.xml
回答by Tamal Kanti Nath
It seems like Apache central repository has fixed the issue. So without making any change, the problem is fixed now. Please try once again and let us know in case of any issue.
似乎 Apache 中央存储库已经解决了这个问题。因此,无需进行任何更改,现在问题已解决。请再试一次,如有任何问题,请告知我们。