使IntelliJ解决同一项目中模块的依赖关系

时间:2016-10-27 08:41:12

标签: java intellij-idea gradle

使用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任务buildtestdep。如果我不改变版本,这个过程甚至都不可靠。这很可能是因为gradle缓存,但它很烦人。

使用命令行参数--refresh-dependencies不是一个真正的解决方案,因为它使我们项目的构建时间(上面的那个仅用于演示目的)难以忍受。此外,我希望必须明确使用gradle调用。

任何想法/改进如何处理这种情况? 是否适用于Eclipse,任何经验? 这将在IntelliJ 2016.3中修复(我看到该版本的gradle区域有一些改进)。

1 个答案:

答案 0 :(得分:2)

使用Gradle中的新Composite Builds功能,您可以尝试执行的操作。 Support for IntelliJ IDEA即将推出。