如何在 gradle 构建的配置阶段从 xml 文件读取配置?
How to make configuration read from an xml file available at configuration phase of gradle build?
我有大量 ant 项目要迁移到 gradle。所有项目都有一个共同的 config.xml
文件。该文件的存在与构建无关,但我想将其信息保存在一个地方,因此我也在 ant 构建期间对其进行评估。
我创建了一个带有 PluginExtension 和 ParserTask 的自定义插件。 PluginExtension 允许用户提供 config.xml
路径作为属性。 ParserTask 自动或使用提供的路径定位文件,如果找到则解析文件。然后用 config.xml
.
中的相应配置数据填充剩余的 PluginExtension 属性
这工作完美,但有一个主要缺点:由于解析是在任务中完成的,因此在我构建的配置阶段,PluginExtension 的相应属性未填充来自 config.xml
的信息。这会导致我的构建文件中出现各种难闻的解决方法,因为我无法在配置阶段设置存档基名或在该阶段配置清单,因此我需要在执行阶段更新此信息。
如何在我的构建过程中解析 config.xml
,以便在配置阶段为属性填充正确的值?
将配置信息移动到属性文件并在构建期间重新生成 config.xml
不是一个选项,因为我还需要维护 ant 构建一段时间。此外,我需要 config.xml
文件作为版本控制的一部分。
编辑:尽管我自己找到了答案,但我仍然对其他回复感兴趣,尤其是如果它们解决了我留下的缺点。
我现在将解析移至 PluginExtension 并从 PluginExtension 构造函数调用解析器。还剩下一个缺点。我无法再配置使用该扩展名搜索 config.xml
的位置。相反,我必须完全依赖文件搜索。这对我当前的用例来说没问题。
我有大量 ant 项目要迁移到 gradle。所有项目都有一个共同的 config.xml
文件。该文件的存在与构建无关,但我想将其信息保存在一个地方,因此我也在 ant 构建期间对其进行评估。
我创建了一个带有 PluginExtension 和 ParserTask 的自定义插件。 PluginExtension 允许用户提供 config.xml
路径作为属性。 ParserTask 自动或使用提供的路径定位文件,如果找到则解析文件。然后用 config.xml
.
这工作完美,但有一个主要缺点:由于解析是在任务中完成的,因此在我构建的配置阶段,PluginExtension 的相应属性未填充来自 config.xml
的信息。这会导致我的构建文件中出现各种难闻的解决方法,因为我无法在配置阶段设置存档基名或在该阶段配置清单,因此我需要在执行阶段更新此信息。
如何在我的构建过程中解析 config.xml
,以便在配置阶段为属性填充正确的值?
将配置信息移动到属性文件并在构建期间重新生成 config.xml
不是一个选项,因为我还需要维护 ant 构建一段时间。此外,我需要 config.xml
文件作为版本控制的一部分。
编辑:尽管我自己找到了答案,但我仍然对其他回复感兴趣,尤其是如果它们解决了我留下的缺点。
我现在将解析移至 PluginExtension 并从 PluginExtension 构造函数调用解析器。还剩下一个缺点。我无法再配置使用该扩展名搜索 config.xml
的位置。相反,我必须完全依赖文件搜索。这对我当前的用例来说没问题。