添加单个文件以gradle资源

时间:2014-06-13 14:08:11

标签: resources gradle

我正在使用heroku的config var插件(参见https://devcenter.heroku.com/articles/config-vars)。

它允许我使用.env文件,我没有推送到源代码控制来定义heroku环境。

因此,当我使用heroku时,我可以通过System.properties访问合理的信息。

在dev中,我想从这个文件中读取,所以最好是在我的类路径中。

.env文件是我项目的根目录,所以我不能使用这样的东西:

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

将单个文件包含到gradle资源中的最简单方法是什么?

3 个答案:

答案 0 :(得分:4)

之前的答案看起来比我希望的要复杂得多,所以我在gradle forums上询问并得到了Sterling Green的回复,他是其中一个摇篮核心开发者。

他建议直接配置processResources

processResources {
   from(".env") 
}

他还提到将项目根目录直接包含在输入中可能是一个坏主意。

答案 1 :(得分:3)

将此前的答案与其他网站的其他提示合并后,我想出了以下解决方案:

sourceSets {
  specRes {
    resources {
      srcDir 'extra-dir'
      include 'extrafiles/or-just-one-file.*'
    }
  }
  main.resources {
    srcDir 'src/standard/resources'
    srcDir specRes.resources
  }
}
processResources {
  rename 'some.file', 'META-INF/possible-way-to-rename.txt'
}

我仍然想知道是否有更好的方法。

答案 2 :(得分:1)

我最终做的是将项目根目录添加为资源文件夹,仅包含我感兴趣的文件:

sourceSets.main.resources { srcDir file('.') include '.env' }
似乎要做的伎俩。我想知道它是否是最好的解决方案