1

リソースにフィールド (svn リビジョン) があります。Gradle を使用して自分のフィールドで svn リビジョンを取得するにはどうすればよいですか?

4

2 に答える 2

5

ここで説明されている次のソリューションを変更できます。これにより、現在の 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)
于 2013-08-12T09:56:21.720 に答える
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 printvn
:printsvn
実装ビルド #3071

ビルド成功

合計時間: 0.776 秒

于 2014-09-16T14:57:47.917 に答える