无法从 Maven 存储库下载 CQ DAM API JAR?
Can't download CQ DAM API JAR from Maven Repository?
我以前使用 CRXDE Eclipse,现在我正在将项目迁移到 Maven。我列出了所有依赖项。并将它们放在 bundle/pom.xml 中。其中之一是
<dependency>
<groupId>com.day.cq.dam</groupId>
<artifactId>cq-dam-api</artifactId>
<version>5.5.0</version>
</dependency>
而且我还在父级中添加了存储库信息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 中提供的作用域是什么?**
我仍然无法下载 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 项目安装命令。它奏效了。
欢迎任何关于为什么不从存储库下载的意见。
如果您仔细查看错误消息,您会发现您告诉 Maven 通过 HTTPS(使用 SSL)下载,但 Maven 实际上尝试通过 HTTP(不使用 SSL)下载。
如果我尝试这样做,我的浏览器将被重定向到 HTTPS。我的猜测是 HTTP wagon 被重定向弄糊涂了,或者你有一个 Nexus proxy/mirror 某处配置不正确。
尝试找出 Maven 混合协议的原因。在您的 POM 或 Nexus 的某处,必须是 http://repo.adobe.com/
URL。将其替换为 https://...
这可能是 http://jira.codehaus.org/browse/MNG-4838,其中 V3.0.4 之前的 Maven 无法遵循从 http 到 https 的 301 重定向。如果是这种情况,升级到 Maven 3.0.4 或更高版本应该可以解决它。
我发现 JRE 有问题,但 JDK...
如果您设置 JAVA_HOME 并将其 bin 文件夹放在路径的前面 - 您应该会发现它有效。
就我而言,在我的 mac:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk
PATH=${JAVA_HOME}/bin:$PATH
(您的 JDK 版本可能会有所不同)
然后 运行 Maven 结帐应该可以正常工作而不会出现可怕的 "Could not generate DH keypair" 错误
(这解决了我在使用 Java 8 和 Maven 3.2.5 时遇到的问题)
我在使用 JDK 6 时遇到了这个问题,切换到 7 后它就消失了!
正如这里回答的那样 Java: Why does SSL handshake give 'Could not generate DH keypair' exception? 真正的问题是旧的 java 版本不支持 1024 以上的 DH 密钥,您将需要使用 Java 8,其中包括解决这个问题。
对于遇到此问题的其他人,您也可以通过放宽对证书的检查来选择信任 SSL 端点:
export MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true"
我以前使用 CRXDE Eclipse,现在我正在将项目迁移到 Maven。我列出了所有依赖项。并将它们放在 bundle/pom.xml 中。其中之一是
<dependency>
<groupId>com.day.cq.dam</groupId>
<artifactId>cq-dam-api</artifactId>
<version>5.5.0</version>
</dependency>
而且我还在父级中添加了存储库信息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 中提供的作用域是什么?**
我仍然无法下载 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 项目安装命令。它奏效了。
欢迎任何关于为什么不从存储库下载的意见。
如果您仔细查看错误消息,您会发现您告诉 Maven 通过 HTTPS(使用 SSL)下载,但 Maven 实际上尝试通过 HTTP(不使用 SSL)下载。
如果我尝试这样做,我的浏览器将被重定向到 HTTPS。我的猜测是 HTTP wagon 被重定向弄糊涂了,或者你有一个 Nexus proxy/mirror 某处配置不正确。
尝试找出 Maven 混合协议的原因。在您的 POM 或 Nexus 的某处,必须是 http://repo.adobe.com/
URL。将其替换为 https://...
这可能是 http://jira.codehaus.org/browse/MNG-4838,其中 V3.0.4 之前的 Maven 无法遵循从 http 到 https 的 301 重定向。如果是这种情况,升级到 Maven 3.0.4 或更高版本应该可以解决它。
我发现 JRE 有问题,但 JDK...
如果您设置 JAVA_HOME 并将其 bin 文件夹放在路径的前面 - 您应该会发现它有效。
就我而言,在我的 mac:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk PATH=${JAVA_HOME}/bin:$PATH
(您的 JDK 版本可能会有所不同) 然后 运行 Maven 结帐应该可以正常工作而不会出现可怕的 "Could not generate DH keypair" 错误
(这解决了我在使用 Java 8 和 Maven 3.2.5 时遇到的问题)
我在使用 JDK 6 时遇到了这个问题,切换到 7 后它就消失了!
正如这里回答的那样 Java: Why does SSL handshake give 'Could not generate DH keypair' exception? 真正的问题是旧的 java 版本不支持 1024 以上的 DH 密钥,您将需要使用 Java 8,其中包括解决这个问题。
对于遇到此问题的其他人,您也可以通过放宽对证书的检查来选择信任 SSL 端点:
export MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true"