Gradle - 'flatten'默认资源目录

时间:2013-03-21 08:47:02

标签: gradle

在我的项目中,我有以下目录设置:

  • src/main/resources/common
  • src/main/resources/local
  • src/main/resources/release

我的目标是覆盖默认资源详细说明并在最终存档中“展平”此目录树。

目前我发现只有这个丑陋的解决方案:

resources {
  exclude 'release'
  exclude 'common'
  exclude 'local'
  srcDir 'src/main/resources/common'
  srcDir 'src/main/resources/local'
  srcDir 'src/main/resources/release'
}

使用此解决方案,我认为src/main/resources中的文件将被复制到最终存档中。有没有办法排除资源默认目录?

有没有更好的方法来解决我的问题?

1 个答案:

答案 0 :(得分:1)

更好的方法是覆盖默认位置:

sourceSets {
    main {
        resources {
            srcDirs = [
                'src/main/resources/common', 
                'src/main/resources/local',
                'src/main/resources/release'
            ]
        }
    }
}

它是Gradle API提供属性(例如srcDirs)的常用习惯用法,它允许设置集合(从而覆盖任何默认值),并且具有类似名称允许添加到集合的方法(例如srcDir)(从而添加到默认值)。

  

我的目标是[...]"压扁"最终档案中的这个目录树。

不确定你的意思。