构建器 - 从资源中排除目录

时间:2011-08-04 10:01:51

标签: buildr

在Buildr中,您可以通过执行以下操作排除目录中的所有文件:

resources.exclude 'scratch/*'

是否也可以排除目录? Buildr文档提到:

  

过滤器始终排除CVS和.svn目录以及所有文件   以.bak或〜结尾,所以不必担心这些。

我的公司使用Dimensions作为其源代码控件,它在每个目录中创建一个.metadata文件夹,就像subversion与.svn文件夹一样。

1 个答案:

答案 0 :(得分:0)

这些排除实际上是从Rake(rake / file_list.rb)继承的

module Rake
  ...
  class FileList
    ...

    DEFAULT_IGNORE_PATTERNS = [
      /(^|[\/\\])CVS([\/\\]|$)/,
      /(^|[\/\\])\.svn([\/\\]|$)/,
      /\.bak$/,
      /~$/
    ]

    ...
  end
end

所以如果你想要的话,可以对默认值进行修补。

或者,您也可以通过传递一个块并调用FileList方法直接在exclude上添加排除项,

pkg_files = FileList.new('lib/**/*') do |fl|
  fl.exclude(/\bCVS\b/)
end

由于Buildr过滤器(http://buildr.apache.org/rdoc/classes/Buildr/Filter.html)公开了它们的基础FileList,您可以这样做:

resources.sources do |fl|
  fl.exclude(/\.metadata/)
end