2013-06-12 51 views

回答

5

您可以修改以下解決方案explained here,它打印出當前的SVN修訂版。

// File: build.gradle 
task svninfo << { 
    new ByteArrayOutputStream().withStream { os -> 
     def result = exec { 
      executable = 'svn' 
      args = ['info'] 
      standardOutput = os 
     } 
     def outputAsString = os.toString() 
     def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (\d+)/ 
     println "Latest Changed Revision #: ${matchLastChangedRev[0][1]}" 
    } 
} 

// Example output for svn info: 
// Path: . 
// URL: http://svn.host/svn/project 
// Repository Root: http://svn.host/svn/ 
// Repository UUID: 9de3ae54-a9c2-4644-a1a1-838cb992bc8e 
// Revision: 33 
// Node Kind: directory 
// Schedule: normal 
// Last Changed Author: mrhaki 
// Last Changed Rev: 33 
// Last Changed Date: 2010-09-03 14:25:41 +0200 (Fri, 03 Sep 2010) 
2

試試這個

task svnversion { 
    description 'Get SVN revision number.' 
    new ByteArrayOutputStream().withStream { os -> 
    def result = exec { 
     executable = 'svnversion' 
     standardOutput = os 
    } 
    ext.revid = os.toString() 
    } 
} 

您可以

task printsvn(description: 'Demonstrate calling svnversion task.') { 
    println 'Implementation-Build #' + svnversion.revid 
} 

結果

$ gradle這個printsvn
測試:printsvn
實施 - 建造#3071

生成成功

總時間:0.776秒