2016-02-03 5 views
5

पास करने के लिए रन {} ब्लॉक के समतुल्य ग्रेडल के लिए डीबग लक्ष्य मैं Codename One क्लाइंट बनाता है जो कि बहुत ही अनुकूलित चींटी स्क्रिप्ट को धीरे-धीरे काम करने के लिए काम कर रहा है।बहस

java -classpath CodenameOneJarList com.codename1.impl.javase.Simulator nameOfTheMainClassForTheApp 

Gradle में ऐसा करने के लिए मैं इस तरह के रूप में बुनियादी निर्माण स्क्रिप्ट संपादित::

apply plugin: 'java' 
apply plugin: 'application' 
mainClassName = "com.codename1.impl.javase.Simulator" 

// for netbeans 
ext.mainClass = 'com.codename1.impl.javase.Simulator' 
आप क्षुधा मुख्य वर्ग बल्कि तरह कुछ नहीं चल रहे हैं आप सिम्युलेटर पर एक कोडनाम एक ऐप चलाते हैं

फिर निचले भाग में मैं इस किया था:

run { 
    args 'com.mycompany.myapp.Main' 
} 

यह अपेक्षा के अनुरूप काम किया है और जब आईडीई (NetBeans) में रन दबाने सिम्युलेटर का शुभारंभ किया। मुझे यकीन नहीं है कि यह करने के लिए "सही चीज़" है और यदि यह अन्य आईडीई में काम करेगी।

तब जब मैंने डीबगर में लॉन्च करने का प्रयास किया तो तर्क पारित नहीं हुए क्योंकि मुझे लगता है कि run लक्ष्य का आह्वान नहीं किया गया था?

debug { 
    args 'com.mycompany.myapp.Main' 
} 

कौन सा स्पष्ट रूप से विफल रहा है:

मैं यह कर की कोशिश की। मुझे यकीन नहीं है कि डीबगर को तर्क कहां से पास किया जाए?

क्या यह ग्रेडल द्वारा मानकीकृत है?

क्या मैं तर्क के बारे में सही दिशा में हूं?

"रन" घोषणात्मक वाक्यविन्यास मानचित्र क्या करता है? मैं अन्य संभावित घोषणात्मक ब्लॉक प्रकार कैसे प्राप्त करूं?

दुर्भाग्य से रन/डीबग जैसी मूलभूत बातें के लिए googling का परिणाम कुछ उपयोगी नहीं है।

उत्तर

1

run आपके build.gradle में अनुभाग डीएसएल आपके प्रोजेक्ट में application प्लगइन से जोड़ा गया है। प्लगइन के बारे में Here is more information। जैसा कि आपने देखा होगा, एप्लिकेशन प्लगइन वास्तव में एक चलने योग्य जार बनाने, वितरित करने और निष्पादित करने की दिशा में तैयार है - डीबगिंग के लिए इतना नहीं है और इसके लिए कोई समर्थन नहीं है।

Gradle से एक जावा प्रक्रिया शुरू करने के लिए, आप एक JavaExec कार्य का उपयोग कर सकते हैं, और args क्षेत्र का उपयोग कर किसी भी मनमाने ढंग से JVM तर्क सहित, लेकिन डिबग विकल्प तक ही सीमित नहीं,।

task runApp(type: JavaExec) { 
    classpath = sourceSets.main.runtimeClasspath 
    main = 'package.Main' //class to run 

    // add debug arguments as required, for example: 
    args '-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n' 
} 

रन gradle runApp डिबग मोड में अपने आवेदन शुरू और फिर अपने आईडीई संलग्न करने के लिए:

आप की तरह कुछ कर सकता है। नेटबीन्स के साथ पर्याप्त परिचित नहीं है, मैं इस बात पर टिप्पणी नहीं कर सकता कि Netbeans को डीबग जावा प्रक्रिया में कैसे संलग्न किया जाए।

+0

धन्यवाद। तो क्या एक प्लगइन है जो मुझे ऐसा करने की अनुमति देगी? डीबगिंग के लिए एक लक्ष्य परिभाषित करें और आम तौर पर आईडीई की ज़रूरत वाले सभी कार्यों को करने के लिए मुझे कुछ विशिष्ट प्रति-आईडीई करने की आवश्यकता है? अगर उत्तरार्द्ध मैं इस तरह हैक्स की तलाश शुरू करूँ? –

+0

एफवाईआई मुझे स्पष्ट रूप से netbeans gradle प्लगइन स्थापित है ;-) –

+0

नेटबीन में एक सादा जावा (गैर ग्रेड) परियोजना में आप एक विशिष्ट वर्ग को कैसे डिबग करेंगे? – RaGe

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