//Path to the file of your properties file that contains the version number
final String VERSION_PROPERTIES_FILE = projectDir.getParentFile().getParent() + "/file.properties"
/**
* Returns the id of the property name from config file, null if it doesn't exist
* @param propertyName
* @param properties file name in assets dir
* @return
*/
def getPropertyFromFile(propertiesFilePath, propertyName) {
def propsFile = new File(propertiesFilePath);
if (propsFile.canRead()) {
def props = new Properties();
props.load(new FileInputStream(propsFile));
return props.getProperty(propertyName, null);
} else {
throw new GradleException("Could not read $propertiesFilePath !")
}
}
int vCode = getPropertyFromFile(VERSION_PROPERTIES_FILE, "versionCode") as Integer
String vName = getPropertyFromFile(VERSION_PROPERTIES_FILE, "versionName")
defaultConfig {
applicationId "com.x.x"
minSdkVersion 14
targetSdkVersion 25
versionCode vCode
versionName vName
}
3条答案
按热度按时间fumotvh31#
当然,我是这样做的:
我将我的版本存储在version.properties文件中。
然后在应用的build.gradle中,我使用以下代码:
在本例中,可以将
"ProductBuildDateTime"
和"ProductVersion"
传递给读取文件的方法。fwzugrvs2#
如果你想从一个文件中读取构建信息,你可以使用一个更简化的版本,就像这样:
只需将其复制并粘贴到主构建文件中,而不是settings.gradle文件
或者,如果你使用的是bamboo,你可以更容易地做到这一点,只需要求bamboo在build命令中传递这些属性,就像这样:
将这些代码复制并传递到构建脚本中的任何位置(甚至在settings.gradle中)
现在只需让bamboo将这两个参数添加到build命令中,如下所示:
提示:clean和assembleRelease是构建脚本中的任务,您可以调用任何您想要的任务。
eulz3vhy3#
是的
如果你想知道怎么做,那么简单地做一些像