Gradle不生成带引号的String

时间:2014-11-08 11:00:12

标签: android groovy gradle

我正在尝试使用此功能在BuildConfig中包含一个包含构建日期的自定义字段:

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmmss')
    return formattedDate
}

然后,在defaultConfig中我输入:

buildConfigField "String", "BUILD_NUMBER", getDate()

问题是,Gradle生成的字段是:

public static final String BUILD_NUMBER = 20141108114911;

抛出“整数太大”,但我不想要一个整数,我想要一个字符串!

我尝试用def明确替换String,尝试getDate().toStringgetDate() as String"${getDate()}",但仍然没有引用我的字符串。我还尝试在日期中间添加一个像“ - ”的字符,它仍然不会生成引号,使得:

public static final String BUILD_NUMBER = 20141108-114911;

显然没有任何意义......

我不在这里,不熟悉Groovy,所以不确定是否有另一种(工作)方式来“强制”一个字符串。

1 个答案:

答案 0 :(得分:21)

您需要添加转义引号:

buildConfigField "String", "BUILD_NUMBER", "\"${new Date().format('yyyyMMddHHmmss')}\""