【问题标题】:Gradle unable to resolve Sonatype Nexus dependency in IntelliJGradle 无法解决 IntelliJ 中的 Sonatype Nexus 依赖项
【发布时间】:2017-02-15 08:06:43
【问题描述】:

我在一个新的 IntelliJ 项目中使用 Gradle。我们有一个内部的 Sonatype Nexus 存储库,我已经在 build.gradle 中声明了这一点。我还将依赖项添加到构建脚本中。

group 'com.companyName'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    maven{
        url 'http://host:port/nexus/content/repositories/releases'
    }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile group: 'com.companyName', name:'abc', version: '2.2.7'
}

如您所知,这是一个全新的项目。 IntelliJ 将构建项目,但不会解决外部依赖关系。当我查看 IntelliJ 中的 Gradle 项目视图时,依赖项下有一条红色波浪线,上面写着Unable to resolve dependency。我知道存在依赖项,我可以在 Maven 项目中使用它。

我在没有任何解决方案的情况下四处搜索,也在 intelliJ 项目中尝试了所有不同的设置。有什么想法吗?

【问题讨论】:

  • 如果您使用 dependencies 任务从命令行调用 gradle,输出会说明什么。是否能够解决依赖关系?
  • 您是否重建了项目并确保将依赖项下载到项目中?检查是否可以在外部库下找到它。这发生在我身上一次,并且从项目中进行构建不起作用,所以我通过双击 build.gradle 文件将项目重新导入到 intelliJ 并正确添加了依赖项。
  • 通常,这可能是组/工件/版本中的拼写错误,或者您的 Maven 网址不正确。
  • @Vampire,我可以从命令行运行它,但依赖关系没有解决。我看不到任何错字。
  • 好吧,那么这不是 IntelliJ 问题,IntelliJ 中的任何设置都不会帮助您。如果您使用浏览器访问 URL http://host:port/nexus/content/repositories/releases/com/companyName/abc/2.2.7/abc-2.2.7.jar,您会下载 JAR 吗?如果不是,则说明您的关系或配置有问题

标签: java maven intellij-idea gradle


【解决方案1】:

来自对原帖的讨论:

似乎有些缓存已损坏。 删除项目中的.gradle文件夹和~/.gradle/caches,然后再次尝试解析依赖关系。

【讨论】:

  • 如果这些操作没有帮助怎么办?)
  • 仍然是问题,它在命令行上解决了吗?如果不是,您的确切错误是什么?尤其是-s
【解决方案2】:

我在 IntelliJ 2017.1 连接到 Artifactory 时遇到了类似的问题。我打开了一个终端,运行“./gradlew tasks”,作为副作用,下载了依赖项。

【讨论】:

    【解决方案3】:

    无法解决依赖关系(即使在检查没有错别字之后)等问题可能是由于防火墙设置造成的。

    请咨询您的安全部门以了解如何修复它。

    在一些组织中,他们有本地镜像。在gradle.properties 中,您必须在distributionUrl 中提供该路径

    同样在build.gradle 中使用存储库中的相应路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 2018-09-13
      相关资源
      最近更新 更多