2013-10-08 14 views
8

मेरी init.gradle में मैंसमारोह

... 
// the last thing in init.gradle 
def buildTime() { 
    def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") //you can change it 
    df.setTimeZone(TimeZone.getTimeZone("UTC")) 
    return df.format(new Date()) 
} 

है मेरी build.gradle में मैं इस तरह कुछ करना चाहता हूँ:

task showTime() << { 
    println buildTime() 
} 

लेकिन मैं मिल सकता है " रूट प्रोजेक्ट पर तर्क [] के लिए विधि buildTime() नहीं ढूंढें ... "

अग्रिम में Thx!

उत्तर

6

Gradle-Support से उत्तर प्राप्त हुआ। http://goo.gl/5uYInH

शायद यह किसी और में मदद करता है ...

init फ़ाइल build.gradle फ़ाइल से एक अलग संदर्भ है। लेकिन आप (एक बंद का प्रयोग करके) एक परियोजना वस्तु कोई कस्टम गुण या विधि के साथ (प्रतिनिधियों को build.gradle) का विस्तार कर सकते हैं:

init.gradle

import java.text.SimpleDateFormat 
gradle.allprojects{ 
    ext.buildTime = { 
    def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
    df.setTimeZone(TimeZone.getTimeZone("UTC")) 
    return df.format(new Date()) 
    }  
} 

build.gradle

task showBuildTime() << { 
    println buildTime() 
} 
+2

यह सिर्फ ऐसी चीज है जो लोगों को पागल बनाती है। "सरल के रूप में कुछ सरल करना शामिल है, निराशाजनक रूप से उलझन में है। पीएस, मुझे यह भी विश्वास है कि वैश्विक संदर्भ में 'शोबिल्डटाइम()' को परिभाषित करके हल किया जा सकता था (" = "v।" << ")। –

+0

मैं उपयोग कर रहा हूं एक ही समाधान। लेकिन क्या आप जानते हैं कि buildTime() शरीर से project.ext में परिभाषित एक और विधि को कैसे कॉल करें? – ATom

+0

तर्कों के साथ कार्यों के बारे में क्या? –

संबंधित मुद्दे