【发布时间】:2021-02-16 16:04:30
【问题描述】:
有两个项目 P-m 和 P-d。它们是可以单独构建的独立 Jenkins 项目。 P-m 依赖于 P-d,它是一个快照版本依赖。
最近在构建 P-m 的过程中出现了一个问题。它抱怨无法从远程存储库下载 P-d jar 并出现此错误:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException
虽然该错误表明 JVM 证书可能存在问题,但似乎无法成功下载来自同一远程存储库的其他 jar。
如果先手动构建 P-d(本地存储库有一个 P-d 快照 jar,远程存储库有已部署的时间戳 P-d jar),然后构建 P-m,它可以正常工作,因为它不会尝试从远程存储库下载 P-d jar。
但是几天后,P-d 没有任何变化,当 P-m 构建时(这次 P-d 不是手动构建的),它会动态调用 P-d 的包装,我不知道为什么。在这种情况下,本地存储库具有上次的 P-d 快照 jar,而远程存储库具有新部署的时间戳 P-d jar。然后它尝试从远程存储库下载这个新的时间戳 P-d jar,并且无法下载该 jar,并出现错误:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException
请帮助解决以下问题(不确定是否重要:使用的 maven 版本是 3.6.3):
-
maven 应该即时构建依赖项还是只使用存储库中的最新依赖项?例如,P-m 取决于 P-d。 P-m 会只使用存储库中最新版本的 P-d(如果 P-d jar 不可用,它会抱怨找不到 P-d),还是每次 P-m 构建时 P-m 都会构建 P-d?是什么决定了哪种行为?我观察了第二种情况(每次 Pm 构建时,它都会在远程存储库中打包一个新的 Pd jar 而不将 Pd jar 安装到本地存储库),我不知道为什么----是什么使它生成了一个新的 Pd jar(仅带时间戳的 Pd jar 部署到远程存储库,而本地存储库中没有新的快照 Pd jar)并且不使用最新的 Pd jar?
-
为什么不能下载新生成的 P-d jar 并出现“PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException”?任何线索可能是什么问题?如前所述,除了这个新生成的 P-d jar 之外,其他所有 jar 都可以从同一个远程存储库成功下载,因此似乎不是构建机器的 JVM 证书问题。
【问题讨论】: