首页 文章

通过build.gradle任务在项目目录中创建version.txt文件

提问于
浏览
14

为我的无知而事先道歉 . 我很陌生 .

我的目标是在build.gradle文件中有一些任务,每当我在项目根目录中运行 gradle terminal命令时,在我的项目目录中创建一个文件'version.txt' . 此'version.txt'文件需要包含构建的版本元数据,例如:

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

(^ Revision将是HEAD的git commit hash)

我曾尝试重用以下资源中的代码段,但无济于事,可能是因为这些资源已过期:http://mrhaki.blogspot.com/2015/04/gradle-goodness-use-git-commit-id-in.html http://mrhaki.blogspot.com/2010/10/gradle-goodness-add-incremental-build.html

我正在使用gradle版本2.14(这是最新版本) .

非常感谢任何帮助和/或见解 . 谢谢!

1 回答

  • 32

    你所指的例子几乎是正确的 . 通过几个小调整,它按预期工作:

    import java.text.SimpleDateFormat
    import org.ajoberstar.grgit.Grgit
    
    plugins {
        id "org.ajoberstar.grgit" version "1.5.1-rc.3"
    }
    
    version = 1.0
    
    task versionTxt()  {
        doLast {
            new File("$projectDir/version.txt").text = """
    Version: $version
    Revision: ${Grgit.open(dir: '.').head().id}
    Buildtime: ${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())}
    Application-name: foobarbaz app
    """
        }
    }
    

    运行 gradle versionTxt 以获得所需的输出 .

相关问题