Hey I have created a Groovy script that will extract the version numbers of some folder. I would then like to compare the version numbers and select the highest.
I g
I use gradle 4.1 in Android Studio 3.0 Beta 7. There is VersionNumber.java (under C:\Users\ssfang.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\gradle-4.1\src\core\org\gradle\util)
For example:
apply plugin: 'com.android.application'
try{ // undocumented
println "${android.plugin.getSdkFolder().getAbsolutePath()}"
// Since 1.3.1 or 1.5.0? android studio version or android gradle plugin?
println "${android.getSdkDirectory().getAbsolutePath()}"
}catch (ignored){
}
// As of android gradle plugin v2.1.2
println android.sdkDirectory.path
println android.ndkDirectory.path
def buildToolsVer = new File(android.sdkDirectory.path, 'build-tools').listFiles().collect{ VersionNumber.parse(it.getName()) }.sort()
println buildToolsVer
printf('%s, %s\n', buildToolsVer.head(), buildToolsVer.last().toString())
def String mostRecentVersion(List versions) {
// TreeMap verNum2StrMap = versions.collectEntries(new TreeMap(), { [VersionNumber.parse(it), it] })
// TreeMap verNum2StrMap = versions.inject(new TreeMap()) { memo, entry ->
// memo[VersionNumber.parse(entry)] = entry
// memo
// }
TreeMap verNum2StrMap = versions.inject(new TreeMap()) { map, verStr ->
map << [(VersionNumber.parse(verStr)): verStr]
}
// println verNum2StrMap.lastEntry().value
verNum2StrMap.lastEntry().value
}
assert mostRecentVersion(['02.2.02.01', '02.2.02.02', '02.2.03.01']) == '02.2.03.01'
assert mostRecentVersion(['4', '2']) == '4'
assert mostRecentVersion(['4.1', '4']) == '4.1'
assert mostRecentVersion(['4.1', '5']) == '5'
android {
compileSdkVersion 25
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "ss.xsigner"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", "xsigner")
}
}
--