2015-04-15 5 views
5

मेरे पास ~ 40 सबप्रोजेक्ट्स के साथ एक एसबीटी परियोजना है। कई प्लगइन्स हैं, जिनमें से सबसे बड़ा Play और sbt-native-packager हैं। कोई वैश्विक प्लगइन्स नहीं हैं।धीमी एसबीटी कई परियोजनाओं के साथ शुरू होता है

कुछ काफी बीफ़ी हार्डवेयर पर, शुरू करें (पहली बार) 20-25 एस लेता है। मुझे पता है कि यह जेवीएम स्टार्टअप के कारण नहीं है, क्योंकि एक छोटी परियोजना (शुद्ध ओवरहेड) 3-4 में शुरू होती है।

मैं कैसे पता लगा सकता हूं कि बड़ी परियोजना में एसबीटी अधिक समय क्यों शुरू कर रहा है?

मैंने sbt -Dsbt.task.timings = true की कोशिश की है, लेकिन इसमें शामिल नहीं है कि समय का एक बड़ा हिस्सा क्या है। पिछले समय के निशान के बाद, लेकिन इससे पहले कि उदाहरण के लिए

सेट चालू परियोजना (निर्माण फाइल में:/घर/पॉल/स्पष्ट अर्थ/उदाहरण /)

वहाँ एक 15s ठहराव है।

मुझे धीमा शुरू होने का कारण क्या मिल सकता है?

उत्तर

1

project/debug.sbt बनाने का प्रयास करें:

logLevel := Level.Debug 

आप क्या पाते हैं देखते हैं। यदि आपके पास project/*.scala है तो अक्सर बिल्ड फ़ाइलों का संकलन होता है।

+0

क्या एसबीटी फाइलें तेजी से हैं या क्या वे अनिवार्य रूप से दिन के अंत में स्कैला फाइलें हैं? –

+0

वे भी संकलित किए जा रहे हैं। समय बचाने के लिए इसे एक प्रकाशित प्लगइन में बनाना चाहिए। –

+0

"शुरू करें (पहली बार के बाद)" इसका मतलब है कि सभी परियोजना/* स्कैला फाइल संकलित की जाती हैं। –

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