compsyncを作った際に、addConfigured()という、タスク名を付けないメソッドを使っていた。これに関してメモを追記。…子要素に関わる部分を全面修正^^;
試行錯誤していたのはcreateメソッドではなくて、ネストした要素の継承クラスを指定する方法だった。今回、再確認の意味で同じように作ってみたのに、タスクが認識されなかった…。クラスの定義方法やbuild.xmlの書き方も同じようにしてantのバージョンも確認したのに、compsyncは動くけど今回のサンプルは動かない。
さんざん調べた結果、違いはtypedef。compsyncはプロパティーファイルから定義を読み込んでいたが、今回のサンプルでは(そこまでするのが面倒だったので)タスク毎にtypedefを書いていた。その場合、ローダー(クラスローダー?)が別扱いになって、タスクと子要素のクラスが別領域にあるので認識できないっぽい。
(エラーが、「ネストした要素がサポートされていない」じゃなくて「クラスが見つからない」とかにしてくれればまだ分かりやすかったのに…。とは言っても、クラスの開発者じゃなくてタスクの使用者から見れば、そうなってしまうのか)
※コメント投稿者のブログIDはブログ作成者のみに通知されます