更新到Intellij 2017.2后,构建我的项目会创建一个/out
目录,其中包含生成的源文件和资源文件。这些文件重复已包含在/build
中的文件,并导致生成的类的duplicate class
编译器错误。我在Gradle或IntelliJ中需要修复的任何想法吗?
答案 0 :(得分:59)
IntelliJ IDEA不再与Gradle共享输出,请see this ticket for details。
您可以通过以下配置覆盖它:
allprojects {
apply plugin: 'idea'
idea {
module {
outputDir file('build/classes/main')
testOutputDir file('build/classes/test')
}
}
if(project.convention.findPlugin(JavaPluginConvention)) {
// Change the output directory for the main and test source sets back to the old path
sourceSets.main.output.classesDir = new File(buildDir, "classes/main")
sourceSets.test.output.classesDir = new File(buildDir, "classes/test")
}
}
或将构建委托给Gradle:File |设置|构建,执行,部署|构建工具| Gradle | Runner =>委派IDE构建/运行操作以进行gradle。
答案 1 :(得分:12)
文件|项目结构|项目设置|模块|路径选项卡|编译器输出
选择'继承项目编译输出路径'继续使用/build
构建工件
答案 2 :(得分:0)
这是我的理解:
基本上,这是解决以下情况下不兼容问题的解决方法:
Gradle build path
和IDEA output path
。
- 问题是-https://github.com/gradle/gradle/issues/2315
- 解决方案是-将这两个目录分开,因此您有两个(
out/
和build/
)https://youtrack.jetbrains.com/issue/IDEA-189063