构建器 - 编译时排除源文件

时间:2013-02-28 12:04:25

标签: ruby rake buildr

在buildr中编译时,有没有办法排除某些包或源文件?编译任务没有排除,因为它在src目录中查找。我们正在构建多个环境,并且我们需要排除一些源文件,否则它将无法编译。

有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:2)

compile.sources只包含源目录,并且无法告诉buildr直接从中排除子目录。但是,在编译之前,buildr会列出这些目录中的所有文件以将它们传递给编译器(您可以使用buildr --trace compile查看)。你可以修补Buildr::Compiler::Base::files_from_sources以排除某些东西,但这似乎太过于干扰。


我会把问题颠倒过来:不要将所有代码都放在一个源目录中,而是将特定于环境的东西放在它自己的目录中,如下所示:

src/main/java
src/other-env/java

大多数(如果不是所有)IDE都支持多个源目录,因此这不应该是一个问题。

然后通过使用compile.from将相应的源目录添加到编译路径来为每个环境定义构建器项目(对于资源也是如此)。如果src/main/java自己编译,你也可以将它分成它自己的项目,并让其他人依赖它,从而避免不得不一遍又一遍地重新编译它。

要使构建脚本更简单,请考虑使各种环境正确sub-projects