次のような多くのリソース セット定義を含む Ant ビルド システムを継承しました。
<files id="app1.lib.jars">
<include name="${java}/jre/lib/jsse.jar"/>
<include name="${work.lib}/jtidy.jar"/>
...
</files>
<files id="app2.lib.jars">
<include name="${work.lib}/itext.jar"/>
<include name="${work.lib}/commons-httpclient.jar"/>
...
</files>
<files id="app3.lib.jars">
<include name="${work.lib}/jdom.jar"/>
<include name="${ant.lib}/ant.jar"/>
...
</files>
これらはおそらく数十個あり、それぞれに 5 ~ 50 個のファイルを含めることができます。問題は、依存関係の管理に Ivy を使用するようにこのシステムを作り直していて、その過程でいくつかの参照が存在しないファイルを指していることです。残念ながら、Ant はこれらの悪いポインターを見つける手助けを提供しません。これらのリソース コレクションを使用してクラスパスを定義すると、<include...>
見つからないファイルを指すタグは黙って無視されます。
コレクションを a のソースとして使用することでエラーを強制できると思いました<copy...>
が、それでもfailonerror="true"
悪い参照を無視しました。
コマンドライン-v
(verbose) および-d
(debug) オプションも役に立ちませんでした。出力は、一部が欠落していることを認めましたが、実際には表示されませんでした
[echo] app1.lib.jars
[copy] C:\dev\src\tomcat6\work\java\jre\lib\jsse.jar omitted as C:\dev\src\tomcat6\work\verify\jsse.jar is up to date.
[copy] C:\dev\src\tomcat6\work\lib\axis-ant.jar omitted as C:\dev\src\tomcat6\work\verify\axis-ant.jar is up to date.
...
[copy] No sources found.
[echo] app2.lib.jars
...
1 回限りの解決策として、Ant ファイルのリソース セットからすべてのファイル名を抽出し、適切に並べ替えた後、(Ant 内の) すべてのファイルを一時ディレクトリにコピーした結果のディレクトリ リストと比較しました。
質問: リソースが見つからないファイルを指しているときに、できればリソースが定義されたときに Ant に教えてもらう方法はありますか?