我写了一个Gradle插件,其版本在其构建脚本中指定。
当有人使用它时,这个插件有可能知道它自己的版本吗? (即调用其apply(Project project)
方法时)
答案 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