【问题标题】:Gradle build settings in IntelliJIntelliJ 中的 Gradle 构建设置
【发布时间】:2017-08-07 10:42:54
【问题描述】:

如何才能成功构建以下 Gradle 项目?

我已经建立了一个新项目。 settings.gradle 是:

rootProject.name = 'myproject'

build.gradle 是:

group 'mygroup'
version '1.0-SNAPSHOT'

apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.5

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url "https://mvnrepository.com/artifact/org.apache.commons/commons-lang3" }
}

dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.6'
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

如果我在 Gradle 工具窗口中使用“刷新所有 gradle 项目”,事件日志会显示:

找到未编制索引的远程 maven 存储库。 [禁用...] 您的 gradle 项目中使用的以下存储库尚未编入索引: https://plugins.gradle.org/m2 https://mvnrepository.com/artifact/org.apache.commons/commons-lang3

项目结构 --> 问题告诉我:

库 Gradle:org.apache.commons:commons-lang3:3.6 已损坏 类路径:/home/myhome/git/myproject/Could not resolve org.apache.commons:commons-lang3:3.6.

有没有人知道构建 gradle 项目的良好指导网站(Getting started with Gradle 除外)?我还根据这些说明重新设置了项目,但我也无法解决任何依赖关系。 (启用自动导入并使用 Gradle 包装器)

【问题讨论】:

  • 问题似乎出在maven { url "https://mvnrepository.com/artifact/org.apache.commons/commons-lang3" } 行,因为存储库应该指定根主机,而不是某些特定的包。
  • 感谢@CrazyCoder 提供此信息!请对我的问题表示歉意,但是在这种情况下,根主机的 URL 是怎样的呢? (好像不是https://mvnrepository.com/artifact/。至少,这对我的构建成功没有任何影响。)
  • 为什么还需要这个自定义存储库?你认为mavenCentral 没有commons-lang3
  • 你说得对,mavenCentral 也提供 commons-lang3。所以,如果我删除这个 mvnrepository 条目并将“存储库”减少到mavenCentral(),问题仍然是我无法解决任何依赖关系。 (Gradle projects 视图显示红色下划线“无法解析...”对于哪个 SourceSet。)
  • 它是从 IntelliJ IDEA 之外的命令行 Gradle 构建的吗?

标签: intellij-idea gradle build dependencies repository


【解决方案1】:

你安装了maven吗?

关于mavenLocal(),Gradle 去阅读~/.m2/settings.xml 以查找有关您的回购所在位置的信息,当找不到任何信息时,它将假定它是'~/.m2/repository'

请使用您使用的 IntelliJ 版本更新问题,因为 2015 年的版本与 Gradle 集成还不是很好,如果您使用的是过时的版本,我建议您下载最新版本并重试。


您可以为此使用某种解决方法,在您的 build.gradle 应用插件中:'idea',然后在命令行上执行 gradle cleanIdea idea - 这将删除并重新创建您的想法文件 .iws .ipr .iml 并重新创建类路径,您的项目应该在 IntelliJ 中刷新并且工作正常

【讨论】:

  • IntelliJ 更新提示在这里很有用。其实我已经从2016.3更新到2017.2了。在我从头开始创建另一个项目后,IDE 要求我离开“Gradle 离线模式”——我从未有意激活过该模式。然后我回到了我以前的项目,解决方案和导入现在运行良好。
【解决方案2】:

问题消失后:

  • 从 IntelliJ 2016.3 升级到 2017.2
  • 从头开始设置另一个项目
  • 被要求停用“Gradle 离线模式” - 并回答是。

显然问题是“Gradle 离线模式”可以直接停用,如this answer 中所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多