Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 通过build.gradle任务在项目目录中创建version.txt文件_Git_File_Gradle_Build.gradle_Versioning - Fatal编程技术网

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

Git 通过build.gradle任务在项目目录中创建version.txt文件,git,file,gradle,build.gradle,versioning,Git,File,Gradle,Build.gradle,Versioning,为我的无知提前道歉。我对格拉德尔很陌生 我的目标是在build.gradle文件中有一些任务,其中每当我在项目根目录中运行gradleterminal命令时,就会在项目目录中创建一个文件“version.txt”。此“version.txt”文件需要包含生成的版本元数据,例如: 版本:1.0 修订:1Z7G30JFHYJL42L9FH0PQZMSKF 建造时间:美国东部时间2016-06-14 07:16:37 应用程序名称:foobarbaz应用程序 (^Revision将是头部的git提交哈

为我的无知提前道歉。我对格拉德尔很陌生

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

版本:1.0
修订:1Z7G30JFHYJL42L9FH0PQZMSKF
建造时间:美国东部时间2016-06-14 07:16:37
应用程序名称:foobarbaz应用程序

(^Revision将是头部的git提交哈希)

我尝试重用以下资源中的代码片段,但没有用,可能是因为这些资源已过时:

我使用的是Gradle2.14版(最新版本)


如有任何帮助和/或见解,将不胜感激。谢谢

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

导入java.text.simpleDataFormat
导入org.ajoberstar.grgit.grgit
插件{
id“org.ajoberstar.grgit”版本“1.7.2”
}
版本=1.0
任务版本文本(){
多拉斯特{
新文件(projectDir,“version.txt”)。text=“”
版本:$Version
修订版:${grgit.head().dwided}
构建时间:${new SimpleDateFormat(“dd-MM-yyy-HH:MM:ss”).format(new-Date())}
应用程序名称:foobarbaz应用程序
"""
}
}

运行
gradleversionxt
以获得所需的输出。

这按预期工作。我所指的例子几乎是正确的。再次感谢!次要调整:leftShift已被弃用,应替换为
doLast
内部闭包。此外,您可以将文件创建缩短为一行
新文件(filename)。text=“blah”
您可以使用
文件(…)。text=…
而不是
新文件(…)。text=…
@deamon,但只能在较新的Gradle版本中使用。。。e、 g.2.14(由ForgeGradle使用)没有文件方法我更新了版本(到最新版本)和代码。另外,要在每次生成时自动调用,使用Gradle:
compileJava{dependsOn versionxt}