代码之家  ›  专栏  ›  技术社区  ›  AbtPst

Gradle:无法使用shell命令初始化变量

  •  0
  • AbtPst  · 技术社区  · 8 年前

    我想通过我的程序中的一些shell命令初始化一些变量 build.gradle 文件

    def YEAR_MONTH_DAY=['date +%F'].execute().text.trim()
    def BUILD_DATE=['date -u +%FT%T.%3NZ)'].execute().text.trim()
    def IMAGE_NAME ='bca/cab-imaging'
    def SHORT_VCS_REF=['git rev-parse --short HEAD'].execute().text.trim()
    def VERSION=YEAR_MONTH_DAY+'-'+SHORT_VCS_REF
    

    但我明白了

    > Cannot run program "date +%F": error=2, No such file or directory
    

    我做错什么了?如何通过shell命令初始化变量?

    我也试过了

    def YEAR_MONTH_DAY= new ByteArrayOutputStream()
    exec{
        commandLine "sh","date +%F"
        standardOutput = YEAR_MONTH_DAY;
    }
    

    但我有

    > Process 'command 'sh'' finished with non-zero exit value 127

    1 回复  |  直到 8 年前
        1
  •  0
  •   AbtPst    8 年前

    我是这样做的

    project.ext.IMAGE_NAME='bca/cab-imaging'
    project.ext.BUILD_DATE= new Date().format("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
    project.ext.YEAR_MONTH_DAY=new Date().format('yyyy-MM-dd')
    project.ext.SHORT_VCS_REF=new ByteArrayOutputStream()
        exec{
            commandLine 'git','rev-parse', '--short', 'HEAD'
            standardOutput = SHORT_VCS_REF;
        }
    project.ext.VERSION=project.YEAR_MONTH_DAY+"-"+"$SHORT_VCS_REF"
    

    project.VERSION 等。