最近,我发现Idea中的所有gradle项目导入了main和test的分离模块。模块看起来像这样:
如您所见,有一个“主”模块,内容根是src / main,只包含主类和资源,还有一个“测试”模块。模块看起来不对劲。这是预期的行为吗?
构思为Intellij Idea 2016.1.1
,格斗为2.11
以下是build.gradle的内容
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: "jacoco"
version = getVersion()
sourceCompatibility = 1.8
targetCompatibility = 1.8
configurations {
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
}
test {
resources {
srcDir 'src/test/data'
}
compileClasspath += configurations.provided
}
}
processResources {
filter { String line -> line.replace("{version}", getVersion()) }
}
processTestResources {
filter { String line -> line.replace("{version}", getVersion()) }
}
idea {
module {
scopes.PROVIDED.plus += [configurations.provided]
}
}
repositories {
mavenCentral()
}
答案 0 :(得分:32)
您可以在Gradle设置中将其关闭。偏好 - >构建,执行,部署 - >构建工具 - > Gradle:取消选中每个源集创建单独的模块。
我不得不关闭它,因为它导致构建失败,因为Make只是拉入主源集。这可能是Intellij中的一个错误,因为gradle仍然可以很好地构建项目。
答案 1 :(得分:12)
我的效果与我的预期相同,特别是因为IntelliJ 14 Ultimate在同一个项目中表现完全不同。
这是IntelliJ在2016.1版中引入的新行为,用于处理复杂的Gradle项目(在您引入新的源集之前从未完全发挥作用)。
它看起来有点奇怪,但有效(比以前更好)。您现在可以在gradle项目窗口中看到每个源集的依赖关系。
另请参阅What's New in IntelliJ IDEA 2016.1和Gradle Goodness: Source Sets As IntelliJ IDEA Modules。
答案 2 :(得分:9)
在我的情况下,我找不到' Alex Spence '提及。
您可以在Gradle设置中将其关闭。偏好 - >构建,执行,部署 - >构建工具 - > Gradle:取消选中每个源集创建单独的模块。
我搜索了那个选项,幸运的是很多其他答案告诉我这个选项在哪里。
我们可以在导入或创建模块和导入项目时取消选中此选项。