我有很多要迁移到 gradle 的 ant 项目。所有项目都有一个共同的config.xml
文件。该文件存在的原因与构建无关,但我想将其信息保存在一个地方,因此我也在 ant 构建期间对其进行评估。
我创建了一个带有 PluginExtension 和 ParserTask 的自定义插件。PluginExtension 允许用户提供config.xml
路径作为属性。ParserTask 自动或使用提供的路径定位文件,并在找到时解析文件。然后,它使用来自config.xml
.
这是完美的工作,但有一个主要缺点:由于解析是在一个任务中完成的,PluginExtension 的各个属性没有填充config.xml
我构建的配置阶段的信息。这会导致我的构建文件中出现各种臭名昭著的变通方法,因为我无法在配置阶段设置档案基名或在该阶段配置清单,因此我需要在执行阶段更新此信息。
如何config.xml
在构建期间解析 ,以便在配置阶段属性已经填充了正确的值?
将配置信息移动到属性文件并config.xml
在构建期间重新生成不是一种选择,因为我还需要将 ant 构建维护一段时间。此外,我需要config.xml
归档成为版本控制的一部分。
编辑:尽管我自己找到了答案,但我仍然对其他回复感兴趣,特别是如果他们解决了我留下的缺点。