在 buildr 中编译时有没有办法排除某些包或源文件?编译任务中没有排除项,因为它在 src 目录中查找。我们正在为多个环境构建,并且对于其中一个环境,我们需要排除一些源文件,否则它将无法编译。
有任何想法吗?
谢谢
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
自己编译,您还可以将其分离到自己的项目中并让其他项目依赖它,从而避免一遍又一遍地重新编译它。
为了使构建脚本更简单,请考虑使各种环境成为适当的子项目。