web-dev-qa-db-ja.com

build.gradleタスクを介してプロジェクトディレクトリにversion.txtファイルを作成します

私の無知をおApびします。私はgradleに非常に新しいです。

私の目標は、プロジェクトルートでgradleターミナルコマンドを実行するたびにプロジェクトディレクトリにファイル 'version.txt'が作成されるbuild.gradleファイルにタスクを追加することです。この 'version.txt'ファイルには、次のようなビルドのバージョンメタデータが含まれている必要があります。

Version: 1.0 Revision: 1z7g30jFHYjl42L9fh0pqzmsQkF Buildtime: 2016-06-14 07:16:37 EST Application-name: foobarbaz app

(^リビジョンはHEADのgit commitハッシュになります)

私は次のリソースのスニペットを再利用しようとしましたが、おそらくこれらのリソースが古くなっているため、役に立ちません: http://mrhaki.blogspot.com/2015/04/gradle-goodness-use- git-commit-id-in.htmlhttp://mrhaki.blogspot.com/2010/10/gradle-goodness-add-incremental-build.html

Gradleバージョン2.14(最新バージョン)を使用しています。

どんな助けや洞察も大歓迎です。ありがとう!

28
Chris Covney

あなたが参照している例はほとんど正しいです。いくつかのマイナーな調整により、期待通りに動作します:

import Java.text.SimpleDateFormat
import org.ajoberstar.grgit.Grgit

plugins {
    id "org.ajoberstar.grgit" version "1.7.2"
}

version = 1.0

task versionTxt()  {
    doLast {
        new File(projectDir, "version.txt").text = """
Version: $version
Revision: ${grgit.head().abbreviatedId}
Buildtime: ${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())}
Application-name: foobarbaz app
"""
    }
}

実行gradle versionTxt目的の出力を取得します。

47
Jk1