0

我对这个 gradle、teamcity 和 groovy 完全陌生。我正在尝试编写一个插件,它将从svninfo获取值。如果开发人员想要覆盖该值(在 build.gradle 中),他们可以覆盖类似这样的内容。

globalVariables{
        virtualRepo = "virtualRepo"
        baseName = "baseName"
        version = "version"
        group = "group"     

}

在这里,我提供了名为 globalvariable 的扩展。

现在,要生产的 jar 的名称根据 build.gradle 中的值命名。
如何从插件中的 build.gradle 中获取值以便为 jar 命名???

4

1 回答 1

0

不确定我是否理解这个问题。它是安装扩展对象的插件,它是需要对它做一些事情的插件。

请注意,插件必须推迟从扩展对象中读取信息,因为后者可能仅在插件运行后才会被填充。(插件apply plugin:在构建脚本中被调用时运行。globalVariables {}之后可能会出现。)有几种延迟配置的技术。在您的特定情况下,如果我想使用扩展对象提供的信息来配置 Jar 任务,我可能会使用jar.doFirst { ... }or gradle.projectsEvaluated { jar. ... }

在开始编写插件之前,请务必阅读 Gradle 用户指南中的编写自定义插件章节。在 Stack Overflow 或http://forums.gradle.org上搜索应该会找到有关延迟配置技术的更多信息。另一个有价值的信息来源是 Gradle 代码库(例如代码质量子项目中的插件)。

于 2012-06-18T11:43:26.957 回答