2012-10-14 25 views
5

मैं एंट बिल्डफाइल से JBoss TattleTale चलाने की कोशिश कर रहा हूं। आम तौर पर मैं बहुत तरह कमांडलाइन से चलाने:इन चींटी/जेवीएम तर्कों में क्या गलत है?

java -Xmx512m -jar /home/myuser/jars/tattletale.jar /home/myuser/projects/lib /home/myuser/tmp/tt 

जहां /home/myuser/projects/src स्रोत निर्देशिका है जहाँ मेरे सभी जार हैं, और /home/myuser/tmp/tt उत्पादन निर्देशिका है जहाँ मैं Tattletale की रिपोर्ट के सभी जगह है, जहां।

चींटी buildfile में मैं उपयोग कर रहा हूँ निम्नलिखित:

<echo message="Running tattle-tale..."/> 
<java fork="true" failonerror="true" jar="/home/myuser/jars/tattletale.jar"> 
    <arg value="Xmx512m"/> 
    <arg value="/home/myuser/projects/lib"/> 
    <arg value="/home/myuser/tmp/tt"/> 
</java> 

जब मैं कमांडलाइन से इस लक्ष्य को चलाने:

run-tattletale: 
    [echo] Running tattle-tale... 

BUILD SUCCESSFUL 
Total time: 3 seconds 

जब मैं /home/myuser/tmp/tt करने के लिए जाना मैं किसी भी उत्पादन नहीं दिख रहा है, हालांकि चींटी आउटपुट SUCCESS दिखाता है जिसमें कोई त्रुटि या चेतावनी नहीं है। क्या मेरे <arg> एस सही दिखते हैं, और यदि नहीं, तो मुझे उन्हें कैसे बदलना चाहिए? अगर वे सही दिखते हैं, तो मैं डीबग करने के लिए क्या कर सकता हूं? अग्रिम में धन्यवाद!

उत्तर

3

पहला तर्क एक JVM तर्क प्रोग्राम प्रोग्राम तर्क नहीं है, इसलिए <arg> गलत वाक्यविन्यास है। इस मामले के लिए java कार्य के maxmemory पैरामीटर का उपयोग करना आसान है।

तो पहले <arg> को हटाएं और maxmemory=512m<java> ब्लॉक में रखें।

+0

धन्यवाद @ माइक क्यू (+1) - लेकिन मुझे अभी भी आउटपुट निर्देशिका में उत्पन्न कुछ भी नहीं दिख रहा है। – IAmYourFaja

6

दो बातें:

  1. डिबग विकल्प का उपयोग कर जब चींटी चलाने की कोशिश करें, और एक लॉगफ़ाइल में उत्पादन को बचाने के। फिर लॉग फ़ाइल देखें। यह आपको दिखाएगा कि यह जावा कमांड को कैसे निष्पादित कर रहा है। यह आपको यह पता लगाने में मदद करेगा कि एंटी <java> सीधे आप कमांड लाइन से जावा चलाने के तरीके से अलग है। यह आपको अपने कार्य को ट्वीक करने की क्षमता देगा।

  2. जब एक पैरामीटर java आदेश के लिए ही है, तो आप <jvmarg> का उपयोग करें और नहीं <arg>:

एक उदाहरण:

<echo message="Running tattle-tale..."/> 
<java fork="true" 
    failonerror="true" 
    jar="/home/myuser/jars/tattletale.jar"> 
    <jvmarg value="-Xmx512m"/> <!-- Note the dash! --> 
    <arg value="/home/myuser/projects/lib"/> 
    <arg value="/home/myuser/tmp/tt"/> 
</java> 

कि प्रयास करें, और ant -d | tee ant.out के साथ चलाने अगर आप यूनिक्स/लिनक्स पर। विंडोज़ पर, आपको ant -d > ant.out.txt करना होगा जो ant.out.txt में आउटपुट को सहेज लेगा, लेकिन आउटपुट प्रदर्शित नहीं करेगा जबकि ant चल रहा है।

1

यदि आप लक्ष्य निर्देशिका में कोई आउटपुट नहीं देखते हैं, तो यह 1 के कारण हो सकता है) दिए गए इनपुट निर्देशिका में कोई संग्रह नहीं है या 2) टैटललेट प्रक्रिया विफल हो रही है। विफलता या अपवाद के मामले में, टैटललेट प्रक्रिया 0 लौटने वाले प्रतीत होता है और यह चींटी का मानना ​​है कि प्रक्रिया निष्पादन सफल है।

डिबगिंग के लिए, मैं आप करने के लिए सुझाव सुनिश्चित दिया निर्देशिका सही है और जावा संग्रह (जार) फ़ाइलें और मानक आउटपुट/त्रुटियों का विश्लेषणtattletale द्वारा उत्पादित है।

उदाहरण:

<echo message="Running tattle-tale..."/> 
<java fork="true" 
    failonerror="false" 
    errorproperty="errorproperty" 
    outputproperty="outputproperty" 
    jar="/home/myuser/jars/tattletale.jar"> 
    <jvmarg value="-Xmx512m"/> <!-- Note the dash! --> 
    <arg value="/home/myuser/projects/lib"/> 
    <arg value="/home/myuser/tmp/tt"/> 
</java> 
<echo message="stdout>> ${outputproperty}"/> 
<echo message="stderr>> ${errorproperty}" /> 

नोट: - failonerror एकमात्र उद्देश्य डीबगिंग के लिए अस्थायी रूप से गलत है।