How to get SVN revision in Gradle for Android?

I have field (svn revision) in resource. How can I get svn revision in my field using by Gradle, that not to do that by my hands?

  • Cordova - Error code 1 for command | Command failed for
  • How to delete a repository and add a new one in Android studio?
  • Import an eclipse android project with version control system into Android Studio
  • Jenkins Lint Plugin not picking up results
  • What happens behind the scenes when I do a repo sync?
  • Cannot build app when using gradle (Android Studio) and local maven repo
  • How do I add my project from Android Studio to my GitHub page?
  • Android Studio - checkout a *branch* from GitHub
  • Android Studio Git Push Rejected
  • How to reset to my last commit in Android Studio
  • How to set android app version by number of build in Jenkins?
  • Remove old and add new git in android studio
  • 2 Solutions collect form web for “How to get SVN revision in Gradle for Android?”

    You could modify the following solution, explained here, which prints out the current SVN revision.

    // 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)
    

    Try this

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

    You can test it with

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

    The results

    $ gradle printsvn
    :printsvn
    Implementation-Build #3071

    BUILD SUCCESSFUL

    Total time: 0.776 secs

    Git Baby is a git and github fan, let's start git clone.