我已经编写了一个自定义插件(我的第一个)来管理一个"内部版本号"我想包含在build.gradle"版本"如此:
allprojects {
version = "1.2.3.${buildNumber}"
}
不幸的是我的插件永远不会运行,因此返回的buildNumber是" null"。
下面是我的build.gradle。
如果我跑步" gradle showbuild"我看到了正确的buildNumber。
如果我跑步" gradle showInfo"报告的内部版本号为" null"。
不知何故,我需要通过gradle来调用我的插件任务' buildInfoLoad'在"版本之前#34;值在所有项目中设置。因为我知道要磨练,所以我正在努力解决这个问题。
任何指针都会非常感激!
buildscript {
repositories {
maven {
// Access to MangoGrove
url uri('../repo')
}
maven { // aka "jcenter()"
url "https://jcenter.bintray.com"
}
}
dependencies {
// Provide the "provided" and "optional" methods for dependencies
classpath 'com.netflix.nebula:gradle-extra-configurations-plugin:3.0.3'
classpath group: 'org.mangogrove.gradle',
name: 'MangoGrove',
version: '1.0.0-SNAPSHOT'
}
}
apply plugin: 'org.mangogrove.gradle'
task showbuild(dependsOn: 'buildInfoLoad') << {
println("BI build number: $buildinfo.buildNumber")
println("BI build time: $buildinfo.buildTime")
}
task createbuild(dependsOn: 'buildInfoCreate') << {
println("BI build number: $buildinfo.buildNumber")
println("BI build time: $buildinfo.buildTime")
}
allprojects {
ext {
buildNumber = "$buildinfo.buildNumber"
}
version = "1.0.0.${buildNumber}-alpha2"
//version = "1.0.0.${buildinfo.buildNumber}-alpha2"
apply plugin: 'eclipse'
eclipse {
classpath {
downloadSources=true
//downloadJavadoc=true
}
}
}
task showInfo << {
println("Product Version is $version")
println("Product BuildNumber is $buildNumber")
}