如何在gradle IDEA模块中设置resourceDirs?

时间:2014-11-24 12:04:49

标签: java intellij-idea gradle

我有一个单独的资源文件夹,我想添加到IDEA类路径。我不使用main / resources的原因是我需要将文件夹放在JAR之外以允许XML配置文件版本。

这在IDEA中起作用

apply plugin: 'idea'
idea {
    module {
        resourceDirs += file('src/dist/etc')
   }
}

当我按下"重新导入Gradle"该文件夹被映射为资源文件夹。 所以IDEA了解resourceDirs属性。

但是Gradle 2.2失败了:

Could not find property 'resourceDirs' on org.gradle.plugins.ide.idea.model.IdeaModule_Decorated@329c1075.

如何在Gradle中设置IDEA中的资源目录?

3 个答案:

答案 0 :(得分:1)

idea.module.resourceDirs += file('src/dist/etc')

自Gradle 4.7起应该可以使用,其中已经添加了对指定想法resourceDirs的支持。

答案 1 :(得分:0)

自己找到答案:

apply plugin: 'idea'
idea {
    module {
        ext.set('resourceDirs', [])
        resourceDirs += file('src/dist/etc')
   }
}

然而,由于https://youtrack.jetbrains.com/issue/IDEA-133399,尽管IDEA现在将'src / dist / etc'标记为资源目录,但它仍然无效。

答案 2 :(得分:0)

一个复杂的例子:

subprojects {
    apply plugin: 'idea'
    if ( ! project.name.equals("core")) {
        idea.module.resourceDirs += new File(
               project(":core").projectDir, "src/main/resources")
    }
}

与Idea 2018.3和Gradle 4.10一起使用。

即使是目前的Idea也有其局限性:它不支持依赖子项目中资源的类路径扩展...仅声明以下内容是

dependencies {
    project(":core")
}