2011-03-11 7 views
5

मैं Grails 1.3.7 द्वारा groovy 1.7.9 के लिए उपयोग किए गए ग्रोवी संस्करण को कैसे बदल सकता हूं?बदलें Grails 'Groovy संस्करण

मैं एक Grails 1.3.7 आवेदन जो हर मिनट में एक क्वार्ट्ज प्रक्रिया कुछ इस तरह करीब 500 नई वस्तुओं को दर्शाता है में इस समस्या आ रही है:

class Foo{ 
Bar bar 
Date d = new Date() 
int v 
} 

def f = new Foo(bar:b, v:value) 

क्या मैं देख रहा हूँ कि प्रत्येक भाग रहा है, यह अधिक समय ले रहा है। सबसे पहले, इसमें कुछ नैनोसेकंड लगते हैं, लेकिन जब तक कि पर्मोजेन मेमोरी त्रुटि से बाहर हो जाता है, तब तक यह प्रक्रिया किसी ऑब्जेक्ट को तुरंत चालू करने के लिए 10 सेकंड से अधिक ... ले जाती है!

मैंने कुछ हीप डंप ले लिए हैं और पाया है कि एक कॉलसाइट क्लासलोडर पहले स्थापित वस्तुओं से भारी मात्रा में स्मृति ले रहा था। इस thread पढ़ने के बाद मैंने अपने युद्ध में सीधे ग्रोवी जार को बदलने का फैसला किया। अब एप्लिकेशन आसानी से चल रहा है क्योंकि इसे कुछ हीप डंप के बाद, और फिर, कोई स्मृति रिसाव नहीं लगती है।

लेकिन प्रत्येक युद्ध जो मैं उत्पन्न करता हूं, ग्रोवी 1.7.7 के साथ आ रहा रहता है और मुझे इसे मैन्युअल रूप से बदलना होगा।

धन्यवाद!

उत्तर

2

आप mavenCentral() (तहत खजाने) uncomment और निर्भरता जोड़ सकता है

compile 'org.codehaus.groovy:groovy-all:1.7.9' 

BuildConfig.groovy में (निर्भरता के तहत)।

पता नहीं है कि यह अनुशंसित है या नहीं। कम से कम बिल्ड आपके आवेदन को ग्रोवी 1.7.9 के साथ पैकेज करेगा जैसे आप मैन्युअल रूप से करते हैं। grails run-app अभी भी 1.7.7 का अनुमान लगाएगा, लेकिन शायद यह कोई मुद्दा नहीं है, क्योंकि आप विकास के दौरान परमजन समस्याओं में भाग लेने से पहले पुनरारंभ कर सकते हैं।

मैंने ग्रोवी 1.7.9 या उच्चतर के साथ एक ग्रेल्स संस्करण तक Grails 1.3.6 पर रहने का फैसला किया।

+0

'mavenCentral()' को अन्य निर्भरताओं को भी हटा देगा? –

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