使用IntelliJ 2016.2.5,我似乎无法解决同一项目中的Gradle依赖关系。
项目结构如下:
firstModule
-> build.gradle // 1
-> settings.gradle // 2
secondModule
-> build.gradle // 3
-> settings.gradle // 4
第一个build.gradle
(1)的内容:
group 'de.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {mavenCentral()}
dependencies {}
settings.gradle
(2):
rootProject.name = 'test'
第二个build.gradle
(4)的内容是:
group 'de.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {mavenCentral()}
dependencies {
compile ('de.test:test:1.0-SNAPSHOT')
}
第二个settings.gradle
(4):
rootProject.name = 'testdep'
两个模块都作为Gradle项目导入,并设置为auto-import enabled
。
我从maven项目中了解到,IntelliJ - 以及Eclipse - 确实将这些依赖关系解析为项目/工作区中的各个模块。但是使用Gradle似乎无法识别依赖关系。在模块test
中的每次更改之后,我需要在模块clean
似乎获取更改之前运行显式gradle任务build
和testdep
。如果我不改变版本,这个过程甚至都不可靠。这很可能是因为gradle缓存,但它很烦人。
使用命令行参数--refresh-dependencies
不是一个真正的解决方案,因为它使我们项目的构建时间(上面的那个仅用于演示目的)难以忍受。此外,我希望不必须明确使用gradle调用。
任何想法/改进如何处理这种情况? 是否适用于Eclipse,任何经验? 这将在IntelliJ 2016.3中修复(我看到该版本的gradle区域有一些改进)。