id:masataka_k:20040803のコメントに書いた「diconファイルの置き場所によってはビルドされない」というのは、Java Build Pathのソースフォルダーをプロジェクト直下(srcなど)ではなく、src/confなどに設定した場合のことです。
以下はmasataka_kさんに書いてあった該当箇所のソースです。
org.seasar.kijimuna.core.builder.DeltaVisitor public boolean visit(IResource resource) throws CoreException { if (resource instanceof IProject) { IProject project = (IProject) resource; builder.fullBuild(project); return (project.isOpen() && Kijimuna.hasS2Nature(project)); } else if (resource instanceof IFolder) { return isJavaSourceFolder((IFolder) resource); } else if (resource instanceof IFile) { IFile file = (IFile) resource; builder.build(file, monitor); } return false; }
試す環境がないのではっきりとはいえないのですが、src/conf/app.diconをビルドする場合、上記のvisitメソッドに来るのは最初はsrcになると思います。
src自体はJavaSourceFolderではないため、その時点でfalseが返ってしまい、それ以下のファイルはビルドが行われないのが原因ではないかと思います(src/confはJavaSourceFolderなはず)
解決策としては以下のようなものが考えられます。
- IFolderの場合は全てtrueを返し、IFileの場合に親ディレクトリがJavaSourceFolderか調べる
- パフォーマンスがいまいちかも
- JavaSourceFolderを調べ、IFolderがJavaSourceFolderの親ディレクトリの場合もtrueを返す。
- IClasspathEntryとかIClasspathEntry.CPE_SOURCEを使うと思いますが詳しくはわからず。
追記:修正されたようです。
id:masataka_k:20040804