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

标签 gradle build-process gradle-plugin

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

我使用PluginExtension和ParserTask创建了一个自定义插件。 PluginExtension允许用户提供config.xml路径作为属性。 ParserTask自动或使用提供的路径查找文件,并在找到文件时对其进行分析。然后,它使用config.xml中的相应配置数据填充其余的PluginExtension属性。

这可以正常工作,但是有一个主要缺点:由于解析是在任务中完成的,因此在我的构建的配置阶段,PininExtension的各个属性未填充config.xml的信息。这会导致生成文件中出现各种令人讨厌的解决方法,因为我无法在配置阶段设置存档的基本名称,也无法在该阶段配置 list ,因此我需要在执行阶段更新此信息。

如何在构建过程中解析config.xml,以便在配置阶段属性已被正确的值填充?

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

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

最佳答案

现在,我将解析移至PluginExtension并从PluginExtension构造函数调用了解析器。还有一个缺点。我不再能够使用该扩展名配置在哪里搜索config.xml。相反,我必须完全依靠文件搜索。对于我当前的用例,这是可以的。

关于gradle - 如何在gradle build的配置阶段从xml文件中读取配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416109/

相关文章:

android - 为多应用程序 android 项目设置 Jenkins

javascript - Grunt - 如何从外部项目运行常见的外部任务

java - 在Gradle中的AspectJ插件中使用方面库

java - 如何使用 Gradle java 插件将 "illegal-access=deny"传递给单元测试的 JVM 参数?

gradle - 我们可以通过在Gradle中使用脚本插件来包含buildscript吗?

java - 如何将 Spring boot 和 Angular 应用程序部署为单个 war 文件?

flutter - 第一个项目中任务 ':app:processDebugManifest'的配置出现问题

gradle - 无法创建 ScriptPluginFactory 类型的服务

ant - 使用 ANT 更新内部版本号并注入(inject)源代码

java - 具有特定 Product Flavors 依赖性的 android-library