如何在build.gradle

时间:2016-07-26 09:31:59

标签: macos android-studio svn

在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在其他团队成员和计算机上工作正常

1 个答案:

答案 0 :(得分:0)

我想在executable中提供完整路径应该有效:

executable = '/usr/local/bin/svn'