繁体   English   中英

Maven,拒绝访问:http://repo1.maven.org/maven2

[英]Maven, Access denied to: http://repo1.maven.org/maven2

我刚刚下载了 Maven 的最新版本。

当我试图跑步时

mvn 原型:生成

我收到错误信息

[警告] 错误读取原型目录http://repo1.maven.org/maven2 org.apache.maven.wagon.authorization.AuthorizationException:访问被拒绝: http: //repo1.maven.org/maven2,ReasonPhrase:Denied Access . 在 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) at org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.getArchetypesByCatalog(DefaultArchetypeSelector.java:200) at org.apache.maven.archetype.ui.generation.DefaultselectArchetypeSelector. e(DefaultArchetypeSelector.java:71) at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:197) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.javaorg:101) .apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal .MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java) :59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache。 maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.Defa ultMaven.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) 在 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 目录中,如本评论所述:

http://jira.codehaus.org/browse/ARCHETYPE-202?focusedCommentId=182771&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-182771

似乎 Apache 中央存储库已经解决了这个问题。 因此,无需进行任何更改,现在问题已解决。 请再试一次,如有任何问题,请告知我们。

执行此命令。 它不仅会创建您的 maven 项目,还会解决下载原型 jar 的问题。 这主要是由于原型 URL 不可用。

用您的项目名称填写项目组 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-目录.xml

它似乎适用于 maven 2(使用 maven 3.05 和 maven 3.1 在 3 台机器 linux 和 windows 上重现该问题)

问题只发生在 repo1... urls 上。 如果您删除本地存储库,则所有插件下载都将正常工作,直到下载原型目录 - “访问被拒绝”

我有这样的问题:

>mvn archetype:generate -DgroupId=... -DartifactId=... -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false 
[INFO] Scanning for projects...
.  .  .
[WARNING] Error reading archetype catalog http://repo1.maven.org/maven2
org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://repo1.maven.org/maven2. Return code is: 501 , ReasonPhrase:HTTPS Required.
.  .  .
[WARNING] No archetype found in remote catalog. Defaulting to internal catalog
.  .  .

项目生成成功,但消息看起来不太好。

我通过将archetypeCatalog属性添加到我的settings.xml解决了这个问题:

<settings>
  <profiles>
    <profile>
      <id>defaultProfile</id>
      <properties>
        ...
        <archetypeCatalog>https://repo1.maven.org/maven2</archetypeCatalog>
      </properties>
 ...

笔记。 刚刚将http更改为https

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM