Intellij idea 如何使用Gradle指定IntelliJ排除目录?
使用IntelliJ打开Intellij idea 如何使用Gradle指定IntelliJ排除目录?,intellij-idea,gradle,Intellij Idea,Gradle,使用IntelliJ打开build.gradle文件,在“从gradle导入项目”窗口中,“排除的根”预先填充.gradle和build目录 如何在build.gradle文件中指定应排除(或不排除)哪些目录 具体来说,我使用的是一个协议缓冲区插件,它将生成的源代码放在/build/generated sources/目录中。如果build目录被排除,则我的源类看不到生成的类 详细信息:IntelliJ 12.1.3,Gradle 1.4如中所示,您可以配置idea.module.exclude
build.gradle
文件,在“从gradle导入项目”窗口中,“排除的根”预先填充.gradle
和build
目录
如何在build.gradle
文件中指定应排除(或不排除)哪些目录
具体来说,我使用的是一个协议缓冲区插件,它将生成的源代码放在/build/generated sources/
目录中。如果build
目录被排除,则我的源类看不到生成的类
详细信息:IntelliJ 12.1.3,Gradle 1.4如中所示,您可以配置idea.module.excludeDirs
属性,该属性的类型为List
。显然IDEA不支持包含被排除目录的子目录,因此您必须排除构建/生成源的所有同级。例如:
idea {
module {
excludeDirs = [file(".gradle")]
["classes", "docs", "dependency-cache", "libs", "reports", "resources", "test-results", "tmp"].each {
excludeDirs << file("$buildDir/$it")
}
}
}
创意{
模块{
excludeDirs=[文件(“.gradle”)]
[“类”、“文档”、“依赖缓存”、“库”、“报告”、“资源”、“测试结果”、“tmp”]。每个{
excludeDirs另一个解决方案。与Idea 13一起使用
idea.module {
excludeDirs -= file(buildDir) //1
buildDir.listFiles({d,f->f != 'generated-sources'} as FilenameFilter).each {excludeDirs += it}} //2
从excludeDirs
中删除buildDir
排除每个buildDir
子级(生成源代码的除外)
如果您使用的是Gradle Kotlin DSL,请使用以下代码段:
idea {
module {
excludeDirs.add(file("..."))
}
}
对于我正在使用的模块中的排除文件夹
idea {
module.apply {
val file = file("$projectDir/node_modules")
val exclude = HashSet<File>(excludeDirs)
exclude.add(file)
excludeDirs = exclude
}
}
创意{
模块.apply{
val文件=文件($projectDir/node_模块)
val exclude=HashSet(excludeDirs)
排除.add(文件)
excludeDirs=排除
}
}
不幸的是,生成的源代码目录被硬编码到插件中。我没有使用gradle的Idea插件,我是使用IntelliJ 12的本机功能打开项目的。当我以这种方式打开它时,这会起作用吗?JetGradle显然会在设置项目时考虑到这一点。我认为只有在运行build
下的文件后执行de>idea
任务-不进行干净签出。这只是管理项目布局中包含/排除的dir。idea不会保存我基于gradle的项目的布局。再次启动后,buildDir
将再次从布局中排除。这几行代码修复了它。对于e使用IDEA中内置的gradle导入功能(即不是gradle插件)-投票支持