Maven无法连接到存储库(我认为)

时间:2016-12-22 09:46:27

标签: maven

  1. 我在win 8.1上开始做this教程。
  2. 我下载了JDK8和Maven。
  3. 我设置了Maven(将mvn添加到PATH,设置JAVA_HOME)。

    • mvn --version的输出:

      Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00) Maven home: C:\apache\apache-maven-3.3.9\bin\.. Java version: 1.8.0_122-ea, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_122\jre Default locale: en_US, platform encoding: Cp1255 OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

  4. 项目的已创建文件夹。

  5. 尝试运行此命令(从教程中复制粘贴,忽略SO中的换行符):mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false -DgroupId=com.example.employees -DartifactId=employees-app -DarchetypeVersion=1.0

    • 命令输出:pastebin
    • 输出摘要: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\yogevl\.m2\repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]
  6. SO中的答案假设我有代理。我没有,我检查了here。另外,我可以使用Chrome访问repo。 另一个答案建议以管理员身份运行cmd。我做了 - 结果相同。

    我也在输出结尾跟随link

    1. 不要这么认为,因为我是从文化中复制粘贴的。
    2. 同上。
    3. 同上。
    4. 不确定这个 - settings.xml是默认文件。我需要改变它吗?
    5. 与1-3相同。
    6. 感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在阅读此处的评论后,解决方案是更新cacerts文件,因为它缺少适用于Maven仓库的证书(感谢I-LOVE-2-REVIVE获取答案和链接)。

所以,如果你遇到同样的问题,这里有一些事情:

  1. This文章将指导您如何将证书添加到cacerts文件中(同样,感谢I-LOVE-2-REVIVE链接)。确保为所需的仓库添加证书。
  2. 请记住,每个jdk / jde都会管理不同的证书列表。
  3. keytool位于%JAVA_HOME%\bin(起初我认为它是一个Linux shell工具,它不是)。

答案 1 :(得分:0)

将适当的代理设置插入您的文件~/.m2/settings.xml(在Windows上可能为C:\Users\you\.m2\settings.xml):

<settings>
    ...
    <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <username></username> <!-- perhaps empty, ask admin  -->
            <password></password>
            <host>proxy.your.company.com</host>
            <port>8080</port>
            <nonProxyHosts>localhost|other.server.com</nonProxyHosts>
        </proxy>
    </proxies>
    ...
</settings>