Maven:“读取原型目录时出错”,不在代理服务器后面

命令:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=org.apache.solr -DartifactId=es-my-proj 

错误(底部满堆):

 ... [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [WARNING] Error reading archetype catalog http://repo1.maven.org/maven2 org.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) ... 

我所做的每一次谷歌搜索都会得到其中一个答案,但都不适用:

  • 在代理背后 – 但我不是代理人的背后!
  • 2010年Maven 2.x出现了一些问题,但我使用的是Maven 3.0.5
  • Mangled设置文件,但我甚至没有〜/ .m2 / settings.xml文件

我检查过的其他事情:

  • 每次我确定没有目录,没有pom文件等。
  • 还尝试添加-DarchetypeRepository = http://repo2.maven.org/maven2但结果相同
  • “拒绝访问”很奇怪 – 我可以从浏览器访问repo1和repo2(虽然服务器说浏览已被禁用)
  • Mountain Lion上的Maven 3.0.5,Oracle Java 7(1.7.0_25)(OS X 10.8.4)

它确实使用一些1x模板创建了一个项目,我不知道它有多好或多坏。

完整堆栈跟踪:

 mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=org.apache.solr -DartifactId=my-proj-name [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [WARNING] Error reading archetype catalog http://repo1.maven.org/maven2 org.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(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) 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] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: org.apache.solr [INFO] Parameter: packageName, Value: org.apache.solr [INFO] Parameter: package, Value: org.apache.solr [INFO] Parameter: artifactId, Value: my-proj-name [INFO] Parameter: basedir, Value: /Users/mbennett/dev [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: /Users/mbennett/dev/my-proj-name [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.563s [INFO] Finished at: Tue Aug 27 11:47:28 PDT 2013 [INFO] Final Memory: 15M/206M [INFO] ------------------------------------------------------------------------ 

似乎Apache中央存储库已经解决了这个问题。 所以没有做任何改变,现在问题就解决了。 如果有任何问题,请再试一次,告诉我们。

Apache Maven团队遇到了与其中一个集成测试相同的问题,请参阅相关的消息线程 。 因此,似乎在8月的最后一周,策略已更改,并且在请求中没有User-Agent时无法获取这些xml文件。 Maven设置中没有选项来设置此值,我也没有找到另一种方法来设置它。

我可以确认Maven-3.0.4确实有效,但是这个版本存在安全问题 。 根据其他post,其他旧版Maven似乎也可以正常工作。

除非Maven Central更改其策略,否则需要在下一个Maven版本中修复此问题。

我昨天得到了同样的错误。 我还没有找到解决方案,但我知道为什么我们有这个错误。

经过几个小时的挖掘maven-archetype-plugin后,我没有注意到一些奇怪的东西……

所以我决定再次运行相同的命令,运行tcpflow来捕获已发送的请求。 结果如下:

 192.168.000.010.59775-185.031.016.185.00080: GET /maven2/archetype-catalog.xml HTTP/1.1 Cache-control: no-cache Cache-store: no-store Pragma: no-cache Expires: 0 Accept-Encoding: gzip Host: repo1.maven.org Connection: Keep-Alive 185.031.016.185.00080-192.168.000.010.59775: HTTP/1.1 403 Denied Access Server: Varnish Retry-After: 0 Content-Type: text/html; charset=utf-8 Content-Length: 401 Accept-Ranges: bytes Date: Fri, 30 Aug 2013 01:53:29 GMT Via: 1.1 varnish Age: 0 Connection: close X-Served-By: cache-am70-AMS X-Cache: MISS X-Cache-Hits: 0 

所以,Guru Meditation错误。 我喜欢清漆!! 之后,我注意到使用netcat,如果你在请求中添加了User-Agent(任何东西),一切正常!

 [07:49][patouche@patouche-desktop:~ :) ] $ nc repo1.maven.org 80 GET /maven2/archetype-catalog.xml HTTP/1.1 Cache-control: no-cache Cache-store: no-store Pragma: no-cache Expires: 0 Accept-Encoding: gzip Host: repo1.maven.org Connection: Keep-Alive User-Agent: I have a dream... HTTP/1.1 200 OK Server: nginx/1.2.1 Content-Type: text/xml Last-Modified: Tue, 27 Aug 2013 11:06:25 GMT Via: 1.1 varnish Content-Length: 1663366 Accept-Ranges: bytes Date: Fri, 30 Aug 2013 05:50:09 GMT Via: 1.1 varnish Age: 81998 Connection: keep-alive X-Served-By: cache-c32-CHI, cache-l22-LON X-Cache: HIT, HIT X-Cache-Hits: 5, 1 

因此,如果您在请求中添加User-Agent,一切都会正常工作。 我认为使用settings.xml但我现在不知道如何。