【问题标题】:Loading of dependency in gradle在 gradle 中加载依赖项
【发布时间】:2020-06-02 09:26:45
【问题描述】:

我即将在 Intellij Idea 中设置一个新的 Gradle 项目。 但是我在加载依赖项时已经失败了。 这是我的 gradle 文件:

plugins {
    id 'java'
}

group 'ch.demo'
version '7.4.5.0'

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'com.google.gwt', name: 'gwt', version: '2.9.0'
}

如果我执行此 gradle 脚本,我会收到错误消息“无法解析 com.google.gwt:gwt:2.9.0。”

maven 模块应该是正确的,它可以在这里找到: https://repo.maven.apache.org/maven2/com/google/gwt/gwt/2.9.0/

看来我做错了什么。有谁知道如何解决这个问题?

也试过compile 'com.google.gwt:gwt:2.9.0',但也没有用。

编辑:

到目前为止,我使用了“重新导入所有 Gradle 项目”命令。如果我按“执行 Gradle 任务”->“gradle build”,我会收到以下错误:

Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not resolve com.google.gwt:gwt:2.9.0.
     Required by:
         project :
      > Could not resolve com.google.gwt:gwt:2.9.0.
         > Could not get resource 'https://repo.maven.apache.org/maven2/com/google/gwt/gwt/2.9.0/gwt-2.9.0.pom'.
            > Could not GET 'https://repo.maven.apache.org/maven2/com/google/gwt/gwt/2.9.0/gwt-2.9.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

【问题讨论】:

  • 您是否在使用代理?我见过一些基本上劫持连接的公司代理,就像“中间人”攻击者那样,然后为您提供自己的本地证书,以便他们可以窥探所有流量。如果您在浏览器中打开 URL 并单击挂锁图标(或类似图标,取决于您使用的浏览器),您可以查看是否是这种情况。如果证书看起来不错,则可能是您的本地 JDK 证书存储已损坏或已过时。你可以在$JAVA_HOME/jre/lib/security/cacerts找到它。
  • 除了代理之外,您的 Java 版本可能太旧而无法处理证书。上面的 apache.org 网址不太可能出现这种情况,但我们已经多次看到 Let's Encrypt 创建的证书。
  • @BjørnVester:我已经在 Intellij Idea 中加载了一个新的 AdoptOpenJDK 11 版本并使用了那个版本。我仍然得到同样的错误。还尝试禁用 Windows 防火墙。我会在我的电脑上加载gwt lib并在本地加载它,所以我不再有这个问题了。
  • com.google.gwt:gwt:2.9.0 是父 pom。您很可能需要 com.google.gwt:gwt-user:2.9.0 和/或 com.google.gwt:gwt-dev:2.9.0

标签: java gradle intellij-idea gwt


【解决方案1】:

您的机器很可能存在设置问题。看起来您的 Java 安装没有通常的受信任根证书。

您应该使用一个小程序,例如this one,来找出问题所在。

解决此特定问题可能需要单独提出问题或在此处找到答案。请参阅this onethat one 等问题。

一旦您设法以这种方式打开连接,请确保 Gradle 使用相同的 JDK,并且一切正常。

【讨论】:

    【解决方案2】:

    试试这样:

    dependencies {    
           implementation 'com.google.gwt:gwt:2.9.0'
    }
    

    建议使用实现而不是编译。进一步的可以在这里找到:

    What's the difference between implementation and compile in Gradle?

    更新: 我刚刚在我的机器上试了一下,效果很好:

    1. 通过 IntelliJ 创建一个新的 gradle 项目
    2. 将您的 gradle.build 修改为如下所示:
      plugins {
                id 'java'
            }
    
        group 'org.example'
        version '1.0-SNAPSHOT'
    
        repositories {
            mavenCentral()
        }
    
        dependencies {
            implementation 'com.google.gwt:gwt:2.9.0'
        }
    

    演示我如何创建项目并在终端上显示构建通过的消息:

    【讨论】:

    • @Roman 试试我刚刚给你的更新。注意组和版本。使用您的 IntelliJ 编辑器创建项目,它将创建您看到的所有内容,您需要做的就是添加依赖项。效果很好,我刚试过。
    • 我已经创建了这样的项目并制作了相同的项目,但它仍然无法正常工作。好像被什么地方挡住了
    • @Roman 您需要在问题中提供更多信息。请使用您正在运行以构建的命令以及完整的堆栈跟踪来更新您的问题,以在上下文中完全查看错误。如果您使用 gradle 构建,您可以使用 --stacktrace 获取更详细的错误信息
    • 好像是某种认证问题
    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 2023-03-15
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多