我对这个gradle,teamcity和groovy完全陌生。 我正在尝试编写一个插件,它将从 svninfo 中获取值。如果开发人员想要覆盖该值(在build.gradle中),他们可以覆盖这样的内容。
globalVariables{ virtualRepo = "virtualRepo" baseName = "baseName" version = "version" group = "group"
}
这里我提供了名为globalvariable的扩展名。
现在,要生产的罐子根据build.gradle的值来生成名称。
如何从插件中获取build.gradle的值,以便命名jar ???
答案 0 :(得分:0)
不确定我理解这个问题。这是安装扩展对象的插件,它是需要用它做的事情的插件。
请注意,插件必须推迟从扩展对象读取信息,因为后者可能只在插件运行后才会填充。 (在构建脚本中调用apply plugin:
时会运行一个插件。globalVariables {}
可能会在此之后出现。)有几种延迟配置的技术。在您的特定情况下,如果我想使用扩展对象提供的信息来配置Jar任务,我可以使用jar.doFirst { ... }
或gradle.projectsEvaluated { jar. ... }
。
在开始编写插件之前,请务必学习Gradle用户指南中的Writing Custom Plugins章节。对Stack Overflow或http://forums.gradle.org的搜索应该会提供有关延迟配置技术的更多信息。另一个有价值的信息来源是Gradle代码库(例如代码质量子项目中的插件)。