我继承包含很多这样的资源 集定义Ant构建系统: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进行依赖关系管理,并且在此过程中,一些 引用现在指向不存在的文件。不幸的是,蚂蚁 没有提供任何帮助找到这些坏指针。当使用这些资源 集合来定义类路径时,任何<include...>
标记 都将被忽略。
我想我可以通过使用集合作为<copy...>
的 源迫使一个错误,但即使failonerror="true"
它只是 忽略坏的引用。
命令行-v
(详细)和-d
(调试)选项也没有帮助 。输出承认,一些人失踪,但没有 实际显示他们
[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
...
对于我提取的所有文件名从Ant文件的 的资源集合一次性的解决方案相比,为一个目录列表 在适当的排序后,将所有文件(在Ant中)复制到临时目录 中。
问:有没有办法让Ant在资源指向 指向缺少的文件时告诉我,最好是在定义资源时?
+1看起来很有趣。我明天会试试这个。 – 2009-11-25 03:11:46
这个解决方案并不是最优的,因为我更喜欢使用新的资源容器(我发现很奇怪文件列表和文件集没有被重构为子容器的子类)。我真正想要的是一个选项,它会告诉Ant为缺少的文件发出警告,但看起来不可用。马丁的回答看起来像是暂时完成这一任务的最佳方式。 – 2009-11-29 02:22:03