有没有一种简单的方法可以在gradle任务中写入文件版本(或类似的外部命令):

我尚未精通groovy / gradle,但是我目前的工作是这样的:

task versionInfo(type:Exec){
    commandLine 'hg id -i -b -t'
    ext.versionfile = new File('bin/$baseName-buildinfo.properties')

    doLast {
        versionfile.text = 'build.revision=' + standardOutput.toString()
    }
}

最佳答案

此构建脚本有两个问题:

  • 命令行需要拆分; gradle试图执行一个名为hg id -i -b t的二进制文件,而不是带有hgid-i-b
  • 参数的t
  • 需要捕获标准输出。您可以将其设置为ByteOutputStream以便以后阅读

  • 试试这个:
    task versionInfo(type:Exec){
        commandLine 'hg id -i -b -t'.split()
        ext.versionfile = new File('bin/$baseName-buildinfo.properties')
        standardOutput = new ByteArrayOutputStream()
    
        doLast {
            versionfile.text = 'build.revision=' + standardOutput.toString()
        }
    }
    

    08-28 01:44
    查看更多