1

buildr でコンパイルするときに、特定のパッケージまたはソース ファイルを除外する方法はありますか? src ディレクトリにあるように、コンパイル タスクに除外はありません。複数の環境用にビルドしており、そのうちの 1 つの環境では、いくつかのソース ファイルを除外する必要があります。そうしないと、コンパイルされません。

何か案は?

ありがとう

4

1 に答える 1

2

compile.sourcesソースディレクトリのみが含まれており、そこからサブディレクトリを直接除外するようbuildrに指示する方法はありません。ただし、コンパイルの前に、buildr はこれらのディレクトリ内のすべてのファイルを一覧表示して、それらをコンパイラに渡します (これは で確認できますbuildr --trace compile)。Buildr::Compiler::Base::files_from_sourcesいくつかのものを除外するためにモンキー パッチを適用することもできますが、それはあまりにも煩わしいようです。


私は問題をひっくり返します: すべてのコードを 1 つのソース ディレクトリに配置する代わりに、次のように環境固有のものを独自のディレクトリに配置します。

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

ほとんどの IDE は複数のソース ディレクトリをサポートしているため、問題にはなりません。

次に、(リソースについても同じ) を使用して適切なソース ディレクトリをコンパイル パスに追加することにより、各環境の buildr プロジェクトを定義しますcompile.from。単独でコンパイルする場合src/main/javaは、それを独自のプロジェクトに分離し、他のプロジェクトをそれに依存させることもできます。これにより、何度も再コンパイルする必要がなくなります。

ビルド スクリプトを簡単にするために、さまざまな環境を適切なサブプロジェクトにすることを検討してください。

于 2013-07-29T09:10:18.680 に答える