【发布时间】:2015-07-17 22:32:48
【问题描述】:
我曾经使用以下 Gradle 脚本在 Subversion 中自动构建版本:
import org.tmatesoft.svn.core.wc.*
buildscript {
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'
classpath 'com.android.tools.build:gradle:1.0.0'
classpath group: 'org.tmatesoft.svnkit', name: 'svnkit', version: '1.7.11'
}
}
def getSvnRevision() { //getting SVN revision #
ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
SVNClientManager clientManager = SVNClientManager.newInstance(options);
SVNStatusClient statusClient = clientManager.getStatusClient();
SVNStatus status = statusClient.doStatus(projectDir, false);
SVNRevision revision = status.getRevision();
return revision.getNumber();
}
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
versionName = "1.0." + getSvnRevision()
versionCode = 1000000 + getSvnRevision()
}
}
这个脚本的本质是从 SVN repo 获取当前版本号并将其用作版本号来生成AndroidManifest.xml,例如:
<!--
Version number encoding: XXYYZZZ
XX 2 digits - major version
YY 2 digits - minor version
ZZZ 3 digits - build (SVN revision)
Example: 0123456 is version 1.23.456
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.package"
android:versionCode="1000650"
android:versionName="1.0.650" >
这让我的生活变得更加轻松,例如当我收到错误报告时,我可以轻松找到有问题的修订。这真的很重要,尤其是在一个有多个测试人员/分发点上传不同版本的情况下。
现在的问题:
如何使用 Git 制作类似的东西?在 Git 中没有单个修订号,而是只有分支的散列 - 但它是字母数字 - Android 只允许使用整数作为版本代码。
【问题讨论】:
-
例如你可以使用标签...
-
请具体...
-
请使用谷歌...昨天我搜索了类似的东西,我确实找到了...所以不是人类搜索引擎
-
git rev-list --count HEAD,或其变体。 -
好吧,我明白了-thanx。如何使用 Gradle 编写脚本?
标签: android git svn version-control gradle