如何在gradle构建的配置阶段从xml文件中读取配置?

时间:2015-10-29 13:50:58

标签: gradle build-process gradle-plugin

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

我使用PluginExtension和ParserTask创建了一个自定义插件。 PluginExtension允许用户提供config.xml路径作为属性。 ParserTask自动定位文件或使用提供的路径定位文件,如果找到则解析文件。然后使用config.xml中的相应配置数据填充剩余的PluginExtension属性。

这很有效,但有一个主要缺点:由于解析是在一个任务中完成的,所以PluginExtension的各个属性在构建的配置阶段没有填充来自config.xml的信息。这会在我的构建文件中导致所有类型的异常变通方法,因为我无法在配置阶段设置存档基本名称或在该阶段配置清单,因此我需要在执行阶段更新此信息。

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

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

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

1 个答案:

答案 0 :(得分:0)

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