*ビルダから強制的にリビルドするには.

複数のビルダに機能を分けているとき,他のビルダの結果を他のビルダに食わせたいということがある.
私が直面したのは,CDTのmakefileビルダが生成したファイルをJavaで書いたビルダに食わせ,さらにmakefileビルダに食わせたいというもの.
perlスクリプトで賄っていた機能をEclipseのビルダに置換したかった.(Windows環境って,ActivePerl/MinGW/Cygwinの各perlが混じっていると,挙動が予測できない).

答えは至極簡単.InternalBuilderを継承しているクラス*1の中からInternalBuilder.needRebuild()を呼ぶ.不用意に呼ぶと,たぶん無限ループに突入するはず*2

これを理解するまでビルダの中を徘徊してしまいましたよ.

*1:ふつうビルダはこの抽象クラスを継承している

*2:BuildManager.basicBuildLoop()辺りを参照