0

我有很多要迁移到 gradle 的 ant 项目。所有项目都有一个共同的config.xml文件。该文件存在的原因与构建无关,但我想将其信息保存在一个地方,因此我也在 ant 构建期间对其进行评估。

我创建了一个带有 PluginExtension 和 ParserTask 的自定义插件。PluginExtension 允许用户提供config.xml路径作为属性。ParserTask 自动或使用提供的路径定位文件,并在找到时解析文件。然后,它使用来自config.xml.

这是完美的工作,但有一个主要缺点:由于解析是在一个任务中完成的,PluginExtension 的各个属性没有填充config.xml我构建的配置阶段的信息。这会导致我的构建文件中出现各种臭名昭著的变通方法,因为我无法在配置阶段设置档案基名或在该阶段配置清单,因此我需要在执行阶段更新此信息。

如何config.xml在构建期间解析 ,以便在配置阶段属性已经填充了正确的值?

将配置信息移动到属性文件并config.xml在构建期间重新生成不是一种选择,因为我还需要将 ant 构建维护一段时间。此外,我需要config.xml归档成为版本控制的一部分。

编辑:尽管我自己找到了答案,但我仍然对其他回复感兴趣,特别是如果他们解决了我留下的缺点。

4

1 回答 1

0

我现在将解析移到 PluginExtension 中,并从 PluginExtension 构造函数中调用解析器。还有一个缺点。我无法再配置config.xml使用该扩展程序搜索的位置。相反,我必须完全依赖文件搜索。这对于我当前的用例来说没问题。

于 2015-10-29T14:25:37.683 回答