在build.gradle中,我们的团队使用以下代码去获取svn版本:
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
}
在Windows下工作。
但在我的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
那么,如何在不改变getSvnRevision的情况下将svn指向/ usr / local / bin / svn? (因为getSvnRevision在其他团队成员和计算机上工作正常
答案 0 :(得分:0)
我想在executable
中提供完整路径应该有效:
executable = '/usr/local/bin/svn'