0
在的build.gradle我们的团队使用下面的代码去拿SVN版本:如何改变Android的工作室SVN路径的build.gradle
windows下def getSvnRevision() {
new ByteArrayOutputStream().withStream { os ->
def result = exec {
executable = 'svn'
args = ['info']
standardOutput = os
}
def outputAsString = os.toString()
def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (\d+)/
ext.svnRev = "${matchLastChangedRev[0][1]}".toInteger()
}
return svnRev
}
作品。
但是在我的mac下,因'svn'指向'/ usr/bin/svn'而失败,这是1.7,而我的工作区使用/usr/local/bin/svn(1.8)。
尝试设置首选项 - >版本控制 - > Subversion->使用命令行客户端到/ usr/local/bin/svn,但似乎gradle坚持使用/ usr/bin/svn。
检查方式:
def getSvnRevision() {
new ByteArrayOutputStream().withStream { os ->
def result = exec {
executable = 'which'
args = ['svn']
standardOutput = os
}
def outputAsString = os.toString()
print 'svn:'+outputAsString
// def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (\d+)/
//
// ext.svnRev = "${matchLastChangedRev[0][1]}".toInteger()
}
return 1
// return svnRev
}
输出: SVN:在/ usr/bin中/ SVN
所以,我怎样才能改变SVN点到/ usr/local/bin目录/无改变getSvnRevision svn的? (因为getSvnRevision工作正常,其他球队承包商,客人的电脑上)
是的,它应该工作。但其他团队成员正在使用不支持此编辑的Windows操作系统。 – CompileLife
finnaly我补充:import org.apache.tools.ant.taskdefs.condition.Os ext {sdn} Os.isFamily(Os.FAMILY_MAC)? '/ usr/local/bin/svn':'svn' } – CompileLife