【问题标题】:Maven: Failed to retrieve plugin descriptor errorMaven:无法检索插件描述符错误
【发布时间】:2011-12-10 18:35:39
【问题描述】:

我配置了 Maven 3.0.3 并尝试使用以下命令使用原型下载示例项目:

mvn archetype:generate -DarchetypeGroupId=org.graniteds.archetypes 
                       -DarchetypeArtifactId=graniteds-tide-spring-jpa-hibernate 
                       -DgroupId=org.example 
                       -DartifactId=gdsspringflex 
                       -Dversion=1.0-SNAPSHOT

(来自此链接的命令:http://java.dzone.com/articles/enterprise-ria-spring-3-flex-4

我得到了这个错误:

Downloading: repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom

[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-plugin:2.4.1: Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1

Downloading: repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3.1/maven-install-plugin-2.3.1.pom

[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-install-plugin:2.3.1: Plugin org.apache.maven.plugins:maven-install-plugin:2.3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1
.
.
.
Downloading: repo1.maven.org/maven2/org/apache/maven/plugins/maven-metadata.xml
Downloading: repo1.maven.org/maven2/org/codehaus/mojo/maven-metadata.xml

[WARNING] Could not transfer metadata org.apache.maven.plugins/maven-metadata.xml from/to central (repo1.maven.org/maven2): Error transferring file: Connection refused: connect

[WARNING] Could not transfer metadata org.codehaus.mojo/maven-metadata.xml from/to central (repo1.maven.org/maven2): Error transferring file: Connection refused: connect
Downloading: repo1.maven.org/maven2/org/apache/maven/plugins/maven-metadata.xml
Downloading: repo1.maven.org/maven2/org/codehaus/mojo/maven-metadata.xml

[WARNING] Could not transfer metadata org.apache.maven.plugins/maven-metadata.xml from/to central (repo1.maven.org/maven2): Error transferring file: Connection refused: connect

[WARNING] Could not transfer metadata org.codehaus.mojo/maven-metadata.xml from/to central (repo1.maven.org/maven2): Error transferring file: Connection refused: connect
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.479s
[INFO] Finished at: Tue Oct 18 12:44:58 BST 2011
[INFO] Final Memory: 1M/15M
[INFO] ------------------------------------------------------------------------

[ERROR] No plugin found for prefix 'archetype' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\krsl1254\.m2\repository), central (repo1.maven.org/maven2)] -> [Help 1]

我尝试搜索一些类似的帖子,但无法得到答案。我尝试在 settings.xml 中更改代理设置,但它仍然不起作用。你能帮帮我吗?

【问题讨论】:

  • 您的 maven 客户端无法访问 repo1.maven.org。我认为您的 settings.xml 仍然有问题。发布它。
  • @HefferWolf...这是当前设置:
  • 嗯,该代理设置已被完整评论?您需要取消注释代理块并输入您在浏览器中使用的完全相同的代理数据。
  • @HefferWolf: aaah .. 对那个评论感到抱歉.. 当我尝试一些设置时没有评论它,然后在我的浏览器中评论它..hmmm 代理设置..因为我有一个正常的帐户(不是管理员帐户),我无法在浏览器中看到代理设置..必须检查如何获取这些设置..感谢 HefferWolf...非常感谢..
  • 如果你不知道你的代理设置去superuser.com/a/346376

标签: maven


【解决方案1】:

我有同样的错误。在我的情况下,我使用的是 Netbeans 7.1.2,我发布这个是因为也许有人最终和我一样。

我尝试从 GUI 配置代理选项,但文档说 maven 不读取这些选项。所以我查看了 NetBeans 常见问题解答here

你要做的主要是在

下创建(如果不存在的话)一个settings.xml
user.home/.m2/settings.xml

如果没有,可以复制

netbeans.home/java/maven/conf/settings.xml

如果您已经拥有它,请取消注释,否则只需填写此部分:

<proxies>
 <proxy>
   <active>true</active>
   <host>myproxy.host.net</host>
   <port>80</port>
 </proxy>
</proxies>

你必须检查你的代理配置并在那里替换它

【讨论】:

  • 非常适合我。现在我可以创建项目,但我从 repo1.maven.org 和 org.apache.maven.plugins 收到 502 错误。该死的代理!
  • 检查你的 以及
  • 我没有代理连接,但我收到此错误@Achyut
  • 呵呵对我来说是公司 vpn 阻止了传入的包裹。检查您的网络设置/防火墙
【解决方案2】:

我在 Eclipse 上遇到了类似的问题,并且与 Sanders 解决的步骤相同。 发生这种情况是因为代理限制了对 maven 存储库的调用

  1. 转到D:\Maven\apache-maven-3.0.4-bin\apache-maven-3.0.4\conf(即你的maven安装文件夹)
  2. 复制settings.xml并将其粘贴到.m2文件夹中,该文件夹位于您的Windows机器的用户文件夹中。
  3. 添加代理设置

类似这样的:

 <proxies>
    <!-- proxy
      Specification for one proxy, to be used in connecting to the network.
     -->
    <proxy>      
      <active>true</active>
      <protocol>http</protocol>
      <username>your username</username>
      <password>password</password>    
      <host>proxy.host.net</host>
      <port>80</port>  
    </proxy>

  </proxies>

【讨论】:

  • 只是为了做个笔记。无需将settings.xmlconf 目录转移到.m2 文件夹,以防您的maven 路径设置正确。原因是 mvn 首先从 conf/settting.xml 加载其全局设置,然后从 .m2 文件夹加载本地设置。这可以从日志中读取` [DEBUG] 从 C:\apache-maven-3.1.1-bin\conf\settings.xml 读取全局设置 [DEBUG] 从 C:\.m2\settings.xml 读取用户设置`
【解决方案3】:

我必须放

 <proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>http</protocol>
  <host>Your proxy host</host>
  <port>proxy host ip</port>
  <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

之前

 <proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>https</protocol>
  <host>Your proxy host</host>
  <port>proxy host ip</port>
  <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

很奇怪,但是是的!&lt;protocol&gt;http&lt;/protocol&gt; 必须在 &lt;protocol&gt;https&lt;/protocol&gt; 之前。 它解决了我的问题。希望它对即使在 conf/settings.xml 中启用代理设置后仍面临连接问题的人有所帮助。

【讨论】:

    【解决方案4】:

    我不建议您这样做,但在我的个人计算机上,我禁用了防火墙,以便 maven 可以获得所需的插件。

    【讨论】:

    • 如上述答案之一所述 - 对我而言,公司 vpn 的设置方式阻止了不受信任的连接,当我将其关闭时,它会毫无问题地为我下载软件包: ) 干杯!
    【解决方案5】:

    在我的情况下,即使通过了代理凭据,它也无法正常工作。

    错误是 - 忘记删除注释行。

    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
    
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>345325</username>
      <password>dfgasdfg</password>
      <host>proxy.abc.com</host>
      <port>8080</port>
      <nonProxyHosts>proxy.abc.com</nonProxyHosts>
    </proxy>
    |-->    ----------REMOVE THIS LINE AND CLOSE It above <proxy> tag
    

    【讨论】:

    • 这个答案成功了。但是空白行是如何产生问题的呢?
    【解决方案6】:

    我遇到了完全相同的问题。我转到我的 IE 设置->LAN 设置。然后将地址复制为主机,将端口复制为端口,它就可以工作了。 以下是我更改的 Settings.xml 中代理标记的快照。

    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <!--username>proxyuser</username>
      <password>proxypass</password-->
      <host>webtitan</host>
      <port>8881</port>
      <!--nonProxyHosts>local.net|some.host.com</nonProxyHosts-->
    </proxy>
    

    【讨论】:

      【解决方案7】:

      我必须在 user.home/.m2/settings.xml 文件中将密码更改为最新!

      【讨论】:

        【解决方案8】:

        谢谢它的工作......

        编辑setting.xml

        并用这个替换代理

        它的工作 100%

        <proxy>      
          <active>true</active>
          <protocol>http</protocol>
          <username>your username</username>
          <password>password</password>    
          <host>proxy.host.net</host>
          <port>80</port>  
        

        【讨论】:

          【解决方案9】:

          修改apache-maven的版本会解决这个问题

          我遇到过,当我使用 apache-maven-2.2.1 时解决了

          【讨论】:

            【解决方案10】:

            我遇到了同样的问题,因为我在 settings.xml 代理配置中使用端口 80 而不是 8080

            【讨论】:

              【解决方案11】:

              Mac OSX 10.7.5:我尝试在 /conf 目录和 ~/.m2 目录中的 settings.xml 文件(如上面的海报所述)中设置我的代理,但仍然出现此错误。我下载了最新版本的 Maven (3.1.1),并设置了我的 PATH 变量以反映最新的安装,它立即为我工作,没有任何错误。

              【讨论】:

                【解决方案12】:

                我在Windows遇到了同样的问题

                自从我在settings.xml 文件中的代理配置被更改后,它就可以工作了

                所以找到并编辑\conf文件夹内的文件,例如:C:\Program Files\apache-maven-3.2.5\conf

                <proxies>
                    <!-- proxy
                     | Specification for one proxy, to be used in connecting to the network.
                     |
                    <proxy>
                      <id>optional</id>
                      <active>true</active>
                      <protocol>http</protocol>
                      <username>jorgesys</username>
                      <password>supercalifragilisticoespialidoso</password>
                      <host>proxyjorgesys</host>
                      <port>8080</port>
                      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
                    </proxy>
                    -->
                  </proxies>
                
                • 就我而言,我不得不从端口80 更改为8080
                • 如果您无法编辑位于 /program files 中的此文件,您可以复制、编辑该文件并替换位于 /program files 文件夹中的文件。

                【讨论】:

                  【解决方案13】:

                  就我而言,即使我的系统不在代理之后,我也遇到了同样的问题。我可以通过在 mvn archetype:generate 之前输入 mvn help:archetype 来解决

                  【讨论】:

                  • 我认为这有帮助吗?但请确保切换回 archetype:generate ,否则您将不断收到错误消息。
                  【解决方案14】:

                  如果您创建了新的 settings.xml 文件而不是从其他地方复制它,请记住将标签放在里面:

                  <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <proxies> ..... </proxies> </settings>

                  【讨论】:

                    【解决方案15】:

                    对我来说,在 VM 中运行 Mint 19 时,maven is not able to download anything from central because ssl don't work 页面上给出的解决方案有效:

                    sudo apt install ca-certificates-java
                    sudo update-ca-certificates -f
                    

                    【讨论】:

                    • 我如何在 Windows 中做到这一点
                    【解决方案16】:

                    我收到了错误

                    [WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-compiler-plugin:3.6.0: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.6.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:3.6.0
                    

                    然后我通过在~/.m2/conf/settings.xml&lt;maven_install_loc&gt;/conf/setting.xml 处提供代理设置来解决问题,如下所示。

                    <proxies>
                        <!-- proxy
                         | Specification for one proxy, to be used in connecting to the network.
                         | -->
                        <proxy>
                          <id>optional</id>
                          <active>true</active>
                          <protocol>http</protocol>
                          <username>jorgesys</username>
                          <password>supercalifragilisticoespialidoso</password>
                          <host>proxyjorgesys</host>
                          <port>8080</port>
                          <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
                        </proxy>
                       
                      </proxies>
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2010-12-21
                      • 2011-10-02
                      • 1970-01-01
                      • 2013-04-03
                      相关资源
                      最近更新 更多