为什么没有用于构建脚本的Apache Ant xml架构定义或DTD?

lis*_*sak 25 ant

可以请任何人向我解释为什么会这样?我一直在使用Maven,并且缺少xml定义的Ant构建脚本使我能够通过互联网和文档进行搜索而不是查看xsd或DTD.

例如,几乎不可能找出目标定义是否可以声明自己的属性.

a_h*_*ame 17

有一个常见问题解答:

是否有可用于验证构建文件的DTD?

<antstructure>任务可以创建不完整的DTD - 但是这个有一些问题:

  • 它不知道所需的属性.只有手动调整此文件才有用.
  • 它并不完整 - 如果你通过<taskdef>它添加新任务将不知道它.有关此问题的解决方案,请参阅Michel Casabianca的此页.请注意,您可以在此页面下载的DTD基于Apache Ant 0.3.1.
  • 它甚至可能是无效的DTD.由于Ant允许任务编写者定义任意元素,因此名称冲突将经常发生 - 如果您的Ant版本包含可选<test><junit>任务,则有两个名为test(任务和嵌套子元素<junit>)的XML元素具有不同的属性列表.这个问题无法解决; DTD没有足够的语法来支持这一点.


The*_*att 8

你也可以使用ant目标:

  <target name="dtdgen">
    <antstructure output="ant.dtd"/>
  </target>
Run Code Online (Sandbox Code Playgroud)

直接为build.xml生成"ant.dtd"文件.只需将目标添加到脚本中并执行"ant dtdgen"即可.

(*克里斯*)