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

Каждый поиск по Google, который я сделал, выдает один из этих ответов, но ни один из них не применим:

  • За прокси - но я не за прокси!
  • Некоторая ошибка в 2010 году с Maven 2.x, но я на Maven 3.0.5
  • Mangled settings file, но у меня даже нет файла ~/.m2/settings.xml

Другие вещи, которые я проверил:

  • Каждый раз, когда я удостоверяюсь, что нет директории, нет файла pom и т.д.
  • Также попытался добавить -DarchetypeRepository = http://repo2.maven.org/maven2, но тот же результат
  • "Доступ запрещен" был нечетным - я могу посетить как repo1, так и repo2 из браузера (хотя сервер говорит, что просмотр отключен, конечно)
  • Maven 3.0.5, Oracle Java 7 (1.7.0_25), на Mountain Lion (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] ------------------------------------------------------------------------

Ответ 1

Кажется, что центральный репозиторий Apache устранил проблему. Поэтому без каких-либо изменений проблема исправлена. Пожалуйста, попробуйте еще раз и сообщите нам в случае возникновения каких-либо проблем.

Ответ 2

Команда Apache Maven столкнулась с одной и той же проблемой с одним из своих тестов интеграции, см. связанный поток сообщений. Похоже, что в течение последней недели августа политика изменилась, и невозможно получить эти xml файлы без User-Agent в запросе. В настройках Maven нет значения для установки этого значения, и я не нашел другого способа его установить.

Я могу подтвердить, что Maven-3.0.4 действительно работает, но эта версия имеет проблему безопасности. Согласно другим сообщениям, другие старые версии Maven, похоже, тоже работают.

Если Maven Central не изменит свою политику, это то, что необходимо устранить в следующем выпуске Maven.

Ответ 3

У меня такая же ошибка вчера. Я еще не успел найти решение, но у меня есть идея, почему у нас есть это сообщение.

После нескольких часов рытья в maven-архетипе-плагине я не заметил ничего странного...

Итак, я решил снова запустить ту же команду с запуском 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

Итак, ошибка Гуру Медитации. Мне нравится лак!! После этого я замечаю использование netcat, что если вы добавите User-Agent (что-либо) в запрос, все будет хорошо!

[07:49][[email protected]:~ :) ] $ 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, но пока не знаю, как это сделать.