默认情况下,gradle idea插件将build文件夹标记为已排除。如何将此文件夹包含为源文件夹? (或者避免将其排除,因为它似乎是默认情况......)
在我的模块build.gradle文件中,我尝试了以下两种配置:
idea {
module {
excludeDirs -= file('build/generated')
}
}
和
idea {
module {
sourceDirs += file('build/generated')
}
}
使用这两种配置,编译后,文件夹构建/生成始终在IntelliJ中显示为排除文件夹。 在IntelliJ中,我总是必须进入“项目设置”,“模块”,然后在“源”选项卡中从已排除的文件夹中删除构建文件夹并让我的项目运行。
答案 0 :(得分:15)
您肯定希望在IntelliJ中排除build
目录。否则,索引将花费更长时间,您将在搜索中获得重复等。由于IntelliJ不支持包含排除目录的子目录,因此我首选的解决方案是将生成的文件放入build
之外的目录中。例如,您可以将它们放入generated
(相对于项目目录),并相应地配置clean
任务:
clean {
delete "generated"
}
另一个选项是排除build
除build/generated
以外的所有子目录。但是,鉴于需要明确列出要排除的目录,这需要付出更多努力,并且存在易碎的风险。 (每次插件/任务/等添加新的子目录时,您都不希望这种情况中断。)
答案 1 :(得分:6)
从
更改代码file('build/generated')
到
file("$buildDir/generated")
我在这里使用的是一个有效的代码:
ext {
cxfOutputDir = file("$buildDir/generated-sources/cxf")
}
idea.module {
excludeDirs -= file("$buildDir")
sourceDirs += cxfOutputDir
}
答案 2 :(得分:1)
这对我有用!
apply plugin: 'idea'
idea {
module {
excludeDirs -= buildDir
}
}
答案 3 :(得分:0)
为生成的源代码使用标准位置 - 无需其他配置即可支持:
${project.buildDir}/generated-sources/something
或
${project.buildDir}/generated-test-sources/something
仅用于测试的生成代码。
something
表示技术,例如: jpamodel , cxf 等。
答案 4 :(得分:0)
第一种方法
['integration/src/generated'].each {
idea.module.sourceDirs += file(it)
sourceSets.main.java.srcDir it
compileJava.source file(it)
}
第二种方法
project.ext {
jaxbTargetDir = file("src/generated/java")
}
idea.module {
excludeDirs -= file("$buildDir")
sourceDirs += jaxbTargetDir
}