自定义Gradle插件中的getVersion()始终未指定
有关 执行摘要:getVersion()在自定义gradle插件中返回“未指定” 我已经创建了一个定制的gradle插件,它将一些业务逻辑应用到我们的Android Studio/gradle构建中。每次我们构建CI时都会运行此插件 我希望插件能够打印出它的版本,在构建过程中,它的版本号与正在构建的Android应用程序的版本号完全不同。(CI生成期间有用的调试信息) 插件的build.gradle(作为jar部署到maven repo): 。。。该插件应用于Android应用程序,如下所示(忽略敏感部分): 在插件中,我尝试按如下方式打印其版本:自定义Gradle插件中的getVersion()始终未指定,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,有关 执行摘要:getVersion()在自定义gradle插件中返回“未指定” 我已经创建了一个定制的gradle插件,它将一些业务逻辑应用到我们的Android Studio/gradle构建中。每次我们构建CI时都会运行此插件 我希望插件能够打印出它的版本,在构建过程中,它的版本号与正在构建的Android应用程序的版本号完全不同。(CI生成期间有用的调试信息) 插件的build.gradle(作为jar部署到maven repo): 。。。该插件应用于Android应用程序,如下所示(
@Override
void apply(Project project) {
project.configure(project) {
if (it.hasProperty("android")) {
if (isJenkinsBuild()) {
log("Plugin version: " + getVersion())
// ...
}
// ...
}
}
}
。。但每当我执行Android应用程序的gradle构建时,它就会认为getVersion()未指定
在另一个gradle构建使用插件时,我应该做些什么来跟踪插件版本呢?project.configure(project){println getVersion()}
与println project.version
相同。如果打印未指定
,则生成脚本未设置(项目)版本
从Gradle 2.2开始,插件没有一种内置的方式来声明或查询它自己的版本,但是你可以自己(为你自己的插件)实现它。project.configure(project){println getVersion()}
与println project.version
相同。如果打印未指定
,则生成脚本未设置(项目)版本
从Gradle 2.2开始,插件没有一种内置的方式来声明或查询它自己的版本,但是你可以自己(为你自己的插件)实现它。project.configure(project){println getVersion()}
与println project.version
相同。如果打印未指定
,则生成脚本未设置(项目)版本
从Gradle 2.2开始,插件没有一种内置的方式来声明或查询它自己的版本,但是你可以自己(为你自己的插件)实现它。project.configure(project){println getVersion()}
与println project.version
相同。如果打印未指定
,则生成脚本未设置(项目)版本
从Gradle 2.2开始,插件没有一种内置的方式来声明或查询自己的版本,但您可以自己(为自己的插件)实现它。
getVersion()
获取当前正在执行的Gradle构建的版本,不是用于创建插件Jar的版本。@OliverCharlesworth如何获取用于创建插件Jar的版本?getVersion()
获取当前正在执行的Gradle版本,不是用于创建插件Jar的版本。@OliverCharlesworth如何获取用于创建插件Jar的版本?getVersion()
获取当前正在执行的Gradle版本,不是用于创建插件Jar的版本。@OliverCharlesworth如何获取用于创建插件Jar的版本?getVersion()
获取当前正在执行的Gradle版本,不是用来创建插件Jar的版本。@OliverCharlesworth您如何获得用于创建插件Jar的版本?谢谢Peter,有没有关于如何跟踪和查询插件版本的建议?可能是JAR本身的一部分?您可以向插件JAR添加属性文件,或者在MyPlugin\getVersion
方法中硬编码版本。清单呢?甚至还有一个用于读取它的API:。清单也可以工作。这可能比拥有自己的属性文件更难实现。谢谢Peter,关于如何跟踪和查询插件版本有什么建议吗?可能是JAR本身的一部分?您可以向插件JAR添加属性文件,或者在MyPlugin\getVersion
方法中硬编码版本。清单呢?甚至还有一个用于读取它的API:。清单也可以工作。这可能比拥有自己的属性文件更难实现。谢谢Peter,关于如何跟踪和查询插件版本有什么建议吗?可能是JAR本身的一部分?您可以向插件JAR添加属性文件,或者在MyPlugin\getVersion
方法中硬编码版本。清单呢?甚至还有一个用于读取它的API:。清单也可以工作。这可能比拥有自己的属性文件更难实现。谢谢Peter,关于如何跟踪和查询插件版本有什么建议吗?可能是JAR本身的一部分?您可以向插件JAR添加属性文件,或者在MyPlugin\getVersion
方法中硬编码版本。清单呢?甚至还有一个用于读取它的API:。清单也可以工作。不过,这可能比拥有自己的属性文件更难实现。
buildscript {
repositories {
mavenCentral()
maven { url "../../../plugin_builds" }
}
dependencies {
classpath 'com.example.foo.gradle:foo-gradle-jenkins:0.0.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'foo'
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.android.examplegradleapplication3"
minSdkVersion 14
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
@Override
void apply(Project project) {
project.configure(project) {
if (it.hasProperty("android")) {
if (isJenkinsBuild()) {
log("Plugin version: " + getVersion())
// ...
}
// ...
}
}
}
AppExtension android = (AppExtension) project.extensions.findByName("android")
String versionName = android.defaultConfig.versionName
String versionCode = android.defaultConfig.versionCode