可以请任何人向我解释为什么会这样?我一直在使用Maven,并且缺少xml定义的Ant构建脚本使我能够通过互联网和文档进行搜索而不是查看xsd或DTD。
例如,几乎不可能找出目标定义是否可以声明自己的属性。
答案 0 :(得分:17)
有一个FAQ for this:
我是否有可用于验证构建文件的DTD?
<antstructure>
任务可以创建不完整的DTD - 但是这个有一些问题:
- 它不知道所需的属性。只有手动调整此文件才有用。
- 不完整 - 如果您通过
<taskdef>
添加新任务,则无法了解相关信息。请参阅Michel Casabianca的this page以获得此问题的解决方案。请注意,您可以在此页面下载的DTD基于Apache Ant 0.3.1。- 甚至可能是无效的DTD。由于Ant允许任务编写者定义任意元素,因此名称冲突将经常发生 - 如果您的Ant版本包含可选的
<test>
和<junit>
任务,则有两个名为test的XML元素(任务和具有不同属性列表的<junit>
)的嵌套子元素。这个问题无法解决; DTD没有足够的语法来支持这一点。
答案 1 :(得分:8)
您也可以使用蚂蚁目标:
<target name="dtdgen">
<antstructure output="ant.dtd"/>
</target>
直接为build.xml生成“ant.dtd”文件。只需将目标添加到脚本中并执行“ant dtdgen”。
(*克里斯*)
答案 2 :(得分:3)
我在某处读到,无法为ANT创建架构,因为ANT不是 足够规律的语法。您可以测试它是否符合vanilla XML语法 如果你使用Stylus Studio。
您也可以将一些工作脚本提供给Stylus Studio,并要求它生成XSD。然后手动抛光XSD。这不是完整的ANT,但它可能有助于发现错误。
我处理问题的方法不是直接编写ANT XML,而是使用stomper程序生成它。这样一旦我得到程序正确,它就保证是正确的。 然后,它在所有项目中都是完全一致的。
为我自己的stomper代码。