从自己的代码中获取自定义Gradle插件版本

时间:2014-02-11 05:02:41

标签: plugins gradle

我写了一个Gradle插件,其版本在其构建脚本中指定。

当有人使用它时,这个插件有可能知道它自己的版本吗? (即调用其apply(Project project)方法时)

2 个答案:

答案 0 :(得分:4)

对于我的插件,我在构建期间将一个字段嵌入到名为Implementation-Version的MANIFEST.MF文件中。然后我在运行时通过访问这样的包来读取该字段:

def pkg = MyPlugin.class.getPackage()
return pkg.implementationVersion

或使用辅助类,如:https://github.com/nebula-plugins/nebula-core/blob/master/src/main/groovy/nebula/core/ClassHelper.groovy#L16从清单中抓取任意字段。

答案 1 :(得分:0)

您也可以通过执行以下操作来查找版本:

    def selfVersion = project.buildscript.configurations.classpath.resolvedConfiguration.resolvedArtifacts.collect {
      it.moduleVersion.id }.findAll { it.name == '<name of plugin>' }.first().version