2014-11-08 7 views
6

Próbuję zawierać pole niestandardowe w BuildConfig zawierający datę kompilacji przy użyciu tej funkcji:Gradle nie generując ciąg z cytatami

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

Następnie w defaultConfig kładę:

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

Problem polega na tym, że pole generowane przez Gradle to:

public static final String BUILD_NUMBER = 20141108114911; 

który wyrzuca "Integer too large", ale ja nie chcę Integer, chcę String!

starałem się wyraźnie wymienić def z String, próbował getDate().toString, getDate() as String i "${getDate()}" i nadal nie zacytować otaczać mój ciąg. Próbowałem też umieścić znak jak „-” w środku dzień, to uspokaja nie generuje cytaty, dzięki czemu:

public static final String BUILD_NUMBER = 20141108-114911; 

wyraźnie nie czyniąc żadnego sensu ...

Jestem out Pomysł tutaj, nie jest wystarczająco znajomy z Groovy i nie jestem pewien, czy istnieje inny (działający) sposób na "wymuszenie" Stringa.

Odpowiedz

19

Trzeba dodać uciekły cytaty:

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

lub po prostu umieścić mieszane cudzysłowach: ' ' "BuildID"'' –

Powiązane problemy