我刚刚下载了最新版本的 Maven。
当我试图跑步时
mvn 原型:生成
我收到错误消息
[警告] 读取原型目录时出错 http://repo1.maven.org/maven2 org.apache.maven.wagon.authorization.AuthorizationException:访问被拒绝:http ://repo1.maven.org/maven2, 原因短语:拒绝访问。在 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.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:216) 在 org.apache.maven.archetype. DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:205) 在 org. 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 调用(未知来源)。 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)
我没有代理,互联网工作正常。防火墙已关闭。如何解决这个问题呢 ?
谢谢你的帮助。
如果我们查看类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);
....
}
...
}
所以问题是因为我们在响应中有 HTTP 403 Forbidden 错误。 但我不知道该怎么办...
所以现在我们知道我们收到了 FORBIDDEN 错误,因为我们在 HTTP 请求中没有 User-Agent。感谢帕图什