我刚刚下载了Maven的最新版本。
当我试图跑步时
mvn原型:生成
我收到错误消息
[警告]读取原型目录http://repo1.maven.org/maven2 org.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 org.apache.maven.wagon上的.StreamWagon.getIfNewer(StreamWagon.java:88)。org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.downloadCatalog(RemoteCatalogArchetypeDataSource.java:119处的StreamWagon.get(StreamWagon.java:61) )于org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypemarch.ache:arch.ache.ache.ache.ache.maven.archetype.source.RemoteCatalogArchetypeDataSource.getArchetypeCatalog(RemoteCatalogArchetypeDataSource.java:87)处。 org.apache.maven.archetype.ui上的DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:205)。在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)处的launchEnhanced(Launcher.java:290)在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)处在org.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。谢谢帕斯托奇
似乎在http://repo1.maven.org/maven2上的目录浏览已关闭。我不得不求助于自己获取原型目录。我这样做:
mvn archetype:generate -DarchetypeCatalog=http://search.maven.org/remotecontent?filepath=archetype-catalog.xml
另外,我猜您可以从该链接下载archetype-catalog.xml文件,并将其放置在您的.m2目录中,如注释中所述:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句