gpt4 book ai didi

gradle - 自定义Gradle插件中的getVersion()始终未指定

转载 作者:行者123 更新时间:2023-12-03 05:01:59 24 4
gpt4 key购买 nike

Related to How to Get $project.version in Custom Gradle Plugin?



执行摘要:自定义gradle插件中的 getVersion()返回“unspecified”

我创建了一个自定义gradle插件,该插件将一些业务逻辑应用于我们的Android Studio / Gradle构建。每当我们进行CI构建时,都会运行此插件。

我希望插件能够在构建期间打印出其版本号,该版本号与正在构建的Android应用程序的版本号完全不同。 (在CI构建期间有用的调试信息)

插件的build.gradle(以jar形式部署到Maven存储库中):
buildscript {
repositories {
mavenCentral()
}
}


apply plugin: 'groovy'
apply plugin: 'maven'

group = 'com.example.foo.gradle'
version = "0.0.12"

sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6

dependencies {
repositories {
mavenCentral()
}

compile gradleApi()
compile localGroovy()
}



configurations {
includeInJar
}

dependencies {
//testCompile 'junit:junit:4.11'
}


jar {

}


uploadArchives {
repositories.mavenDeployer {
def deployPath = file(getProperty('aar.deployPath'))
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId project.group
artifactId 'foo-gradle-jenkins'
version project.version
}
}
}

...,该插件将应用于这样的Android应用(忽略敏感部分):
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())

// ...
}

// ...
}
}
}

..但每当我执行Android应用的gradle构建时,它都会认为未指定getVersion()。

在使用它作为插件的另一个gradle构建时,我应该怎么做才能跟踪插件版本?

最佳答案

project.configure(project) { println getVersion() }println project.version相同。如果此命令显示unspecified,则构建脚本未设置(project.)version

从Gradle 2.2开始,插件没有内置的方法来声明或查询其自己的版本,但是您可以自己实现(对于您自己的插件)。

关于gradle - 自定义Gradle插件中的getVersion()始终未指定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27050052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com