首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CACERTS IntelliJ + Gradle的问题

CACERTS IntelliJ + Gradle的问题
EN

Stack Overflow用户
提问于 2018-07-10 18:02:17
回答 4查看 15K关注 0票数 8

我目前正在代理后面运行一些REST调用,因此我需要遵循一些严格的过程,以便调用通过。

以前,我在Eclipse中为POC构建,但现在我知道了它的工作原理,我正尝试将它与Gradle一起转移到IntelliJ (个人最喜欢的想法),以实现构建自动化。

我让这个项目编译,导出所有的依赖项,等等.但是当我在IntelliJ中运行它时,我会得到一个"Cert“。不过,在附带说明中,如果我使用“java MyJar.jar”执行编译后的Jar文件(来自gradle),它将完美地运行,并且不会抛出cert错误。这里的关键是,如果我只使用IntelliJ之外的gradle任务来执行Jar,那么它就能工作,但是如果我试图在IntelliJ构建之后立即执行任务,它就会失败。

作品:

  • 通过CLI手动执行从Gradle build任务创建的jar
  • 使用"gradle runMain“通过CLI执行下面的分级任务

不工作:-在IntelliJ中执行构建任务并在构建任务结束时调用"runMain“

我目前的理论是,通过java -jar和Gradle runMain运行它,会导致JVM使用默认的仙人掌"/jre_xxx/libs/security/ cacerts“(我已经添加了证书),但是当我在IntelliJ中使用gradle执行Jar时,它使用的是不同的位置。我还将证书添加到"C:\Program \JetBrains\ IntelliJ 2018.1.5\ the 64\lib\security\cacerts“中,但在IntelliJ中运行它时仍然收到了该证书。

代码语言:javascript
复制
task(runMain, dependsOn: 'classes', type: JavaExec) {
     main = 'com.xxx.xx.x.Utopia'
     classpath = sourceSets.main.runtimeClasspath
     args=[
             "-Djavax.net.ssl.trustStore=C:\\ProgramFiles\\Java\\jre1.8.0_121\\lib\\security\\cacerts"
     ]
 }

通过CLI运行这个任务似乎是可行的,但在IntelliJ中的Gradle构建任务中却从来没有这样做。

任何帮助都将不胜感激。

编辑:只有在IntelliJ中运行时才会得到的错误(PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法找到被请求目标的有效认证路径)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-11 16:09:03

在与我的问题联系JetBrains支持后,我意识到了这个问题。从逻辑上讲,我假设JRE将执行JAR文件,只有在运行java -jar my.jar或从CLI执行Gradle时才是这样。IntelliJ的工作方式是它只使用JDK,所以我不得不修改JDK中的小型JRE。一旦我这样做并将其添加到jdk.xxx/jre/lib/security/cacerts中的CACERTS中,我就能够解决这个问题。

https://youtrack.jetbrains.com/issue/IDEA-195428

票数 13
EN

Stack Overflow用户

发布于 2020-11-11 05:28:56

万一有人也遇到这个问题。我已经将我的证书添加到JDK存储中,并确保IntelliJ正在使用JDK,但是它在尝试下载JAR时仍然会失败。结果,我不得不杀死在后台运行的gradle deamon,因为它在IntelliJ重新启动之间持久化。我在windows上所以ps java | kill在Powershell里工作。pkill java将在Linux中工作。

票数 1
EN

Stack Overflow用户

发布于 2019-10-17 11:48:10

好的..。有时,这可能是非常微小的事情,我们往往忽略它总是使用从您的jdk>jre>lib>security文件夹到您的VMOptions设置的仙人掌文件路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51271577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档