【问题标题】:Can't download CQ DAM API JAR from Maven Repository?无法从 Maven 存储库下载 CQ DAM API JAR?
【发布时间】:2015-01-05 09:59:42
【问题描述】:

我曾经使用 CRXDE Eclipse,现在我正在将项目迁移到 Maven。我列出了所有依赖项。并将它们放在 bundle/pom.xml 中。其中之一是

        <dependency>
            <groupId>com.day.cq.dam</groupId>
            <artifactId>cq-dam-api</artifactId>
            <version>5.5.0</version>                
        </dependency>  

我还在 Parent POM.xml 中添加了存储库信息

 <repository>
    <id>adobe-releases</id>
    <url>https://repo.adobe.com/nexus/content/groups/public/</url>
  </repository>

如上所述Here

下载除此 jar 之外的所有其他 jar。 这是我尝试安装时的错误

[ERROR] Failed to execute goal on project hrportal-bundle: Could not resolve dep
endencies for project hrporatal:hrportal-bundle:bundle:1.1.0-SNAPSHOT: Failed to
 collect dependencies at com.day.cq.dam:cq-dam-api:jar:5.5.0: Failed to read art
ifact descriptor for com.day.cq.dam:cq-dam-api:jar:5.5.0: Could not transfer art
ifact com.day.cq.dam:cq-dam-api:pom:5.5.0 from/to adobe (http://repo.adobe.com/n
exus/content/groups/public): java.lang.RuntimeException: Could not generate DH k
eypair: Prime size must be multiple of 64, and can only range from 512 to 1024 (
inclusive) -> [Help 1]

当我检查 .m2 文件夹时,我看不到下载的 JAR,我只看到一个文件,其中包含以下内容。

#NOTE: This is an Aether internal implementation file, its format can be changed without prior notice.
#Mon Jan 05 15:19:27 IST 2015
http\://repo.maven.apache.org/maven2/.lastUpdated=1420449912904
https\://code.lds.org/nexus/content/groups/main-repo/.error=
@default-https\://repo.adobe.com/nexus/content/groups/public/.lastUpdated=1420451367149
http\://repo.maven.apache.org/maven2/.error=
https\://code.lds.org/nexus/content/groups/main-repo/.lastUpdated=1420449911681
@default-http\://repo.adobe.com/nexus/content/groups/public/.lastUpdated=1420451366718
https\://repo.adobe.com/nexus/content/groups/public/.error=Could not transfer artifact com.day.cq.dam\:cq-dam-api\:pom\:5.5.0 from/to adobe-releases (https\://repo.adobe.com/nexus/content/groups/public/)\: java.lang.RuntimeException\: Could not generate DH keypair
http\://repo.adobe.com/nexus/content/groups/public/.error=Could not transfer artifact com.day.cq.dam\:cq-dam-api\:pom\:5.5.0 from/to adobe (http\://repo.adobe.com/nexus/content/groups/public)\: java.lang.RuntimeException\: Could not generate DH keypair
 

** Maven 中提供的 Scope 是什么?**

【问题讨论】:

    标签: java maven aem


    【解决方案1】:

    我仍然无法下载 jar。我找到了解决方法。

    我手动下载了 JAR 并使用以下命令将其安装在 Maven 中。

    mvn install:install-file -DgroupId=com.day.cq.dam -DartifactId=cq-dam-api -Dversion=5.5.0 -Dpackaging=jar -Dfile=C:\Users\okaunds\Desktop\cq-dam-api-5.5.0.jar
    

    然后我为 CQ 项目运行了我的安装命令。它奏效了。

    欢迎任何关于为什么它没有从存储库下载的意见。

    【讨论】:

    • 你用的是什么版本的java?看起来您在 java 中遇到了一个错误,如以下答案所述:stackoverflow.com/a/6852095/1570834
    • 顺便说一下有关provided范围的详细信息,请参见以下页面:maven.apache.org/guides/introduction/…
    • @DB5 我使用的是 Java 版本 6。
    • Java6 可能会解释该错误。此错误仅在 Java8 中修复。知道如果您迁移到 Java8 会发生什么会很有趣,否则如果不可能,您手动安装 jar 的解决方法可能是最好的解决方案。
    • 遇到了同样的问题并通过手动安装插件修复了它。感谢您的解决方案。
    【解决方案2】:

    如果您仔细查看错误消息,您会发现您告诉 Maven 通过 HTTPS(使用 SSL)下载,但 Maven 实际上尝试通过 HTTP(不使用 SSL)下载。

    如果我尝试这个,那么我的浏览器会被重定向到 HTTPS。我的猜测是 HTTP wagon 被重定向弄糊涂了,或者您在某处有一个未正确配置的 Nexus 代理/镜像。

    尝试找出 Maven 混合协议的原因。在您的 POM 或 Nexus 中的某处,必须是 http://repo.adobe.com/ URL。将其替换为https://...

    【讨论】:

    • 你说的很有道理!
    • @Oliver:尝试找出 Maven 混合协议的原因。在您的 POM 或 Nexus 中的某处,必须是 http://repo.adobe.com/ URL。将其替换为 https://...
    • 我这样做了,但它仍然拒绝从 repo.adobe.com 下载。
    • 在那种情况下,你没有在任何地方修复它。你必须摆脱http://
    • 我用https替换了所有的adobe repos,然后用http再次尝试。但它仍然显示相同的错误。我以某种方式通过手动安装 jar 来管理我的工作。另一件事是,如果 jar 的 &lt;repository&gt; id 是 &lt;id&gt;adobe&lt;/id&gt;,则 adobe 的 jar 会被下载,但如果 jar 在 &lt;id&gt;adobe-releases&lt;id&gt; 中,则不会下载。
    【解决方案3】:

    这可能是http://jira.codehaus.org/browse/MNG-4838,其中 Maven 在 V3.0.4 之前无法遵循从 http 到 https 的 301 重定向。如果是这种情况,升级到 Maven 3.0.4 或更高版本应该可以解决它。

    【讨论】:

    • 我的 Maven 版本是 3.2.1
    【解决方案4】:

    我发现是 JRE 有问题,但 JDK 没有问题...

    如果您设置了 JAVA_HOME 并将 bin 文件夹放在路径的前面 - 您应该会发现它有效。

    就我而言,在我的 Mac 上:

    JAVA_HOME=/库/Java/JavaVirtualMachines/jdk1.8.0_31.jdk PATH=${JAVA_HOME}/bin:$PATH

    (您的 JDK 版本可能会有所不同) 然后运行 ​​Maven 结帐应该不会出现可怕的“无法生成 DH 密钥对”错误

    (这解决了我在使用 Java 8 和 Maven 3.2.5 时遇到的问题)

    【讨论】:

      【解决方案5】:

      我在使用 JDK 6 时遇到了这个问题,切换到 7 后它就消失了!

      【讨论】:

        【解决方案6】:

        正如Java: Why does SSL handshake give 'Could not generate DH keypair' exception? 在这里回答的那样,真正的问题是较旧的 java 版本不支持 1024 以上的 DH 密钥,您需要使用包含此修复程序的 Java 8。

        【讨论】:

          【解决方案7】:

          对于遇到此问题的其他人,您还可以通过放松对证书的检查来选择信任 SSL 端点:

          export MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true"
          

          【讨论】:

            猜你喜欢
            • 2011-08-29
            • 2012-02-26
            • 2019-05-31
            • 2015-11-29
            • 1970-01-01
            • 2011-09-17
            • 1970-01-01
            • 1970-01-01
            • 2011-08-05
            相关资源
            最近更新 更多