Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven错误,PKIX路径生成失败:找不到请求目标的有效证书路径_Java_Maven - Fatal编程技术网

Java Maven错误,PKIX路径生成失败:找不到请求目标的有效证书路径

Java Maven错误,PKIX路径生成失败:找不到请求目标的有效证书路径,java,maven,Java,Maven,有两个远程服务器。假设我们把它们命名为a和B。 我的java代码已提交并在GIT存储库中更新。 我在服务器A和服务器B上都提取了代码。当我在服务器A上使用mvn clean package安装时,它工作正常,构建成功。 但是,当我为服务器B使用mvn clean package安装时,它会给我以下生成失败消息错误 [INFO] ------------------------------------------------------------------------ [INFO] React

有两个远程服务器。假设我们把它们命名为a和B。 我的java代码已提交并在GIT存储库中更新。 我在服务器A和服务器B上都提取了代码。当我在服务器A上使用mvn clean package安装时,它工作正常,构建成功。 但是,当我为服务器B使用mvn clean package安装时,它会给我以下生成失败消息错误

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] oagi-srt ........................................... SUCCESS [  0.292 s]
[INFO] oagi-srt-common .................................... SUCCESS [  1.959 s]
[INFO] oagi-srt-repository ................................ SUCCESS [  2.357 s]
[INFO] oagi-srt-service ................................... SUCCESS [  2.064 s]
[INFO] oagi-srt-import .................................... SUCCESS [  3.064 s]
[INFO] oagi-srt-webapp .................................... FAILURE [ 21.398 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.539 s
[INFO] Finished at: 2017-08-10T11:50:10+00:00
[INFO] Final Memory: 44M/303M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project srt-webapp: Could not resolve dependencies for project org.oagi:srt-webapp:war:1.0.0: Failed to collect dependencies at org.joinfaces:jsf-spring-boot-starter:jar:2.2.7 -> org.primefaces.extensions:all-themes:jar:1.0.8 -> org.primefaces.themes:afterdark:jar:1.0.8: Failed to read artifact descriptor for org.primefaces.themes:afterdark:jar:1.0.8: Could not transfer artifact org.primefaces.themes:themes-project:pom:1.0.8 from/to prime-repo-new (http://repository.primefaces.org): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :srt-webapp
[信息]------------------------------------------------------------------------
[信息]反应堆概要:
[信息]
[信息]oagi srt。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[0.292秒]
[信息]oagi srt通用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[1.959秒]
[信息]oagi srt存储库。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[2.357秒]
[信息]oagi srt服务。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[2.064 s]
[信息]oagi srt进口。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[3.064 s]
[信息]oagi srt网络应用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。故障[21.398秒]
[信息]------------------------------------------------------------------------
[信息]生成失败
[信息]------------------------------------------------------------------------
[信息]总时间:31.539秒
[信息]完成时间:2017-08-10T11:50:10+00:00
[信息]最终内存:44M/303M
[信息]------------------------------------------------------------------------
[错误]未能在项目srt webapp上执行目标:无法解析项目org的依赖项。oagi:srt webapp:war:1.0.0:未能在org.joinfaces:jsf spring boot starter:jar:2.2.7->org.primefaces.extensions:所有主题:jar:1.0.8->org.primefaces.themes:afterdark:jar:1.0.8:未能读取项目的工件描述符themes:afterdark:jar:1.0.8:无法将工件org.primefaces.themes:themes项目:pom:1.0.8从/传输到prime repo new(http://repository.primefaces.org):sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径->[帮助1]
[错误]
[错误]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。
[错误]使用-X开关重新运行Maven以启用完整调试日志记录。
[错误]
[错误]有关错误和可能的解决方案的更多信息,请阅读以下文章:
[错误][帮助1]http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[错误]
[错误]纠正问题后,可以使用命令恢复生成
[错误]mvn-rf:srt webapp

注意:-如果我直接将projectwar文件放入tomcat并重新启动服务器,我的应用程序在两台服务器上都能正常工作。

您的B服务器似乎没有访问存储库的证书,请尝试比较服务器A和B之间的环境证书


同时检查此问题:

如果您使用的是apache maven存储库以外的存储库,请尝试在url中使用
http
而不是
https

我知道该线程是旧的。也许这是为了其他可能偶然发现这个问题的用户找到答案

EM Creations是对的。使用
http
将导致默认重定向到
https
。我已经搜索了几个stackoverflow问题和其他站点,正确的答案应该是让maven相信我们想要使用的存储库/url/站点的认证

首先,我们需要导入该部件站点的(根)证书。请点击此链接

现在maven默认使用java密钥库可信证书,默认情况下可信证书位于
{java_HOME}/jre/lib.security/cacerts
。因此,下一步是将我们下载的证书添加到cacerts。为此,您可以使用openssl或keytool命令。我个人更喜欢keytool,这是一个示例

keytool 
-import 
-storepass <STOREPASS_PASSWORD> 
-noprompt 
-alias < unique  certificate alias for Keystore> 
-keystore <JRE_HOME>/lib/security/cacerts 
-trustcacerts 
-file <certificate file>
keytool
-进口
-商店通行证
-不客气
-别名<密钥库的唯一证书别名>
-密钥库/lib/security/cacerts
-信托人
-文件

对于mac用户,默认执行将导致权限拒绝错误。因此,您可以使用
sudo
使其可执行和可写

我的公司it策略阻止了maven repo https,因为证书过期日期很短。 导入证书很痛苦。所以我用这种方法来修复它:

  • 更改为最新的maven(在版本3.6.3上验证)
  • 添加这些参数
mvn clean package-Dmaven.wagen.http.ssl.unsecure=true-Dmaven.wagen.http.ssl.allowall=true

当我的JRE没有正确的证书通过我的公司代理和回购时,我会遇到这个问题

步骤1将取决于您的IT部门。您需要找到通过https代理获得的.crt文件,并将其作为您的_proxy.crt下载

步骤2正在运行“mvn-version”,以确保您100%知道您的maven正在使用哪个JRE

步骤3将在管理员模式下使用windows上的Powershell或linux和linux上的sudo进入JRE文件夹

./bin/keytool.exe -importcert -ckeystore cacerts -file Your_Proxy.crt -alias Add_name_here

。。。您需要知道密钥库的密码,该密码通常默认为“changeit”

我在运行
mvn clean install
时遇到了相同的错误,而对我来说,解决方案非常不同

我在maven的
settings.xml
文件中有一个类似代理的条目:

<proxies>
  <proxy>
    ... 
  </proxy>
</proxies>

... 
我尝试将证书导入我的证书和所有证书,但这些都没有帮助


只有在我删除了上面的代理条目之后,它才起作用。(可能我们公司的代理设置发生了变化,因此我以前的设置无效)

谢谢你,路易斯,你的建议对我帮助很大。我穿过