任务将 XML 配置按树路径转为 Ant 属性,如 MyApp 生成 project-config.app.name;支持 keepRoot、prefix、collapseAttributes 等控制命名,semanticAttributes="true" 可识别 location/refid 等语义属性并自动解析路径与引用。
Ant 的 任务用于从 XML 文件中读取结构化配置,并将其自动转为 Ant 属性,方便在 build 中通过
.xml${xxx} 引用。它不是简单地“解析文本”,而是按 XML 树路径生成层级属性名,比如 会生成属性 root.db.url。
假设你有配置文件 config.xml:
MyApp 2.1 dist
在 build.xml 中添加:
之后即可使用:
${project-config.app.name} → MyApp
${project-config.build.output-dir} → dist
注意:keepRoot="true"(默认)会让根元素名 project-config 成为属性前缀;设为 false 则直接以 app.name 形式访问。
可通过以下属性调整生成逻辑:
prefix="cfg":统一加前缀,如 cfg.app.name
collapseAttributes="true":把 XML 属性(如 )也转为属性,生成 file.id=main、file.path=src/Main.java
delimiter=";":当某节点含多个子节点(如 a.jar b.jar ),启用后可合并为 libs.lib=a.jar;b.jar
设 semanticAttributes="true" 后,、、、 等标签会被特殊识别:
效果等价于:
(自动转为绝对路径)此时还可嵌套使用 ${xxx} 引用,例如 会被自动展开(需确保引用顺序合理)。
使用时需留意几点:
validate="true"
加载的属性优先级高于后续 ,但低于命令行 -Dkey=value
location)默认基于 ${basedir} 解析,也可用 rootDirectory 指定基准目录 比 更稳妥