2014-06-14 8 views
5

मुझे org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileScala' मिल रहा है, मेरे स्काला प्रोजेक्ट को ग्रैडल के साथ बनाने की कोशिश कर रहा है, और यदि मैं --stacktrace के साथ ग्रैडल चलाता हूं तो ऐसा लगता है कि अपराधी java.lang.OutOfMemoryError: PermGen space है।मैं ग्राडल के तहत स्कैला संकलन के लिए पर्मजेन स्पेस कैसे बढ़ा सकता हूं?

मैंने संकलन कार्य को फोर्क करने और MaxPermSize को फोर्क किए गए जेवीएम तर्कों में जोड़ने की कोशिश की, लेकिन जो कुछ भी हुआ वह ओओएमई को InvocationTargetException के पीछे ले जाया गया।

यहाँ compileScala कार्य के लिए मेरी build.gradle ब्लॉक है:

compileScala { 
    options.fork = true 
    options.forkOptions.jvmArgs = ['-XX:MaxPermSize=512m'] 
    scalaCompileOptions.additionalParameters = [ 
     "-feature", 
     "-language:reflectiveCalls", // used for config structural typing 
     "-language:postfixOps" 
    ] 
} 

मैं जानता हूँ कि मैं इस के आसपास PermGen अंतरिक्ष विश्व स्तर पर $JAVA_OPTIONS का उपयोग कर में वृद्धि से काम कर सकते हैं, लेकिन मैं एक समाधान है कि मैं स्रोत के साथ में जाँच कर सकते हैं पसंद करते हैं ताकि परियोजना को बनाने के लिए स्थानीय स्तर पर किसी भी चीज़ को अनुकूलित करने की आवश्यकता न हो।

एफडब्ल्यूआईडब्ल्यू, मैक ओएस 10.9.3 पर जावा 1.6.0_65 के तहत स्कैला 2.10.3 के साथ ग्रैडल 1.11 का उपयोग कर रहा हूं।

उत्तर

5

इसे मिला: भले ही ScalaCompile कार्य में options संपत्ति है, तो संपत्ति का उपयोग स्कैला संकलन के लिए नहीं किया जाता है; आपको इसके बजाय scalaCompileOptions का उपयोग करने की आवश्यकता है। इसके बदले में इसकी अपनी forkOptions संपत्ति है।

compileScala { 
    scalaCompileOptions.fork = true 
    scalaCompileOptions.forkOptions.jvmArgs = ['-XX:MaxPermSize=512m'] 
    scalaCompileOptions.additionalParameters = [ 
     "-feature", 
     "-language:reflectiveCalls", // used for config structural typing 
     "-language:postfixOps" 
    ] 
} 
+2

'स्कैलाकंपाइल # विकल्प' स्कैला/जावा संयुक्त संकलन के लिए जावा संकलन विकल्प हैं। 'javaOptions' एक बेहतर नाम होगा। –

+0

मुझे आश्चर्य हुआ कि क्या यह मामला था। –

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