I have three Android projects residing in this kind of folder structure (I have flattened the structure, because i am not sure how to format it with ASCII-Code in this editor):
/myapplication/build.gradle
/myapplication/app/build.gradle
/myapplication/app/version.gradle
now
i define a class at version.gradle
class Version {
def versionCode
def versionName
}
and
i get version by
Version readVersion() {
readVersionWithPath(‘version.properties’)
}
if want use diff version.properties
Version readVersionWithPath(String version_properties_path) {
Properties defaultVersionProps = new Properties()
def pfile = file(version_properties_path)
if (!pfile.exists()) {
pfile = file('version.properties')
}
defaultVersionProps.load(new FileInputStream(pfile))
def defaultBuildVersionCode = defaultVersionProps['VERSION_CODE']
def defaultBuildVersionName = defaultVersionProps['VERSION_NAME_PREFIX'] + "." +
defaultVersionProps['VERSION_NAME_BUILD']
return new Version(versionCode: defaultBuildVersionCode, versionName: defaultBuildVersionName)
}
if want upgrade version use
void increaseVersionWithPath(String version_properties_path) {
Properties versionProps = new Properties()
def pfile = file(version_properties_path)
if (!pfile.exists()) {
pfile = file(‘version.properties’)
}
versionProps.load(new FileInputStream(pfile))
def hotfix = versionProps[‘VERSION_NAME_HOTFIX’].toInteger()
def nextCode = versionProps[‘VERSION_CODE’].toInteger() -hotfix + 10
versionProps[‘VERSION_CODE’] = nextCode.toString()
def nextBuild = versionProps[‘VERSION_NAME_BUILD’].toInteger() + 1
versionProps[‘VERSION_NAME_BUILD’] = nextBuild.toString()
hotfix = 0
versionProps[‘VERSION_NAME_HOTFIX’] = hotfix.toString()
versionProps.store(pfile.newWriter(), null)
def buildVersionName = versionProps[‘VERSION_NAME_PREFIX’] + “.” + versionProps[‘VERSION_NAME_BUILD’]
println “Increase $buildVersionName”
}
but i can not access those from version.gradle by " apply from: ‘version.gradle’ "
if those define at build.gradle if pass !!
if i want how to do ?
THX