2013-02-17 52 views
9

मेरे पास एक जावा प्रोजेक्ट है जो मेवेन का उपयोग करके बनाया गया है। मैं "javac" कमांड लाइन में विकल्प जोड़ना चाहता हूं - विशेष रूप से, मैं कुछ "-जे" विकल्पों को पास करना चाहता हूं।मैवेन के माध्यम से जावैक करने के लिए "-जे" विकल्प कैसे पास करें?

तो सामान्य रूप से मैं कुछ इस तरह करना होगा:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <compilerArgument>-J-Xdebug</compilerArgument> 
     <compilerArgument>-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</compilerArgument> 
    </configuration> 
</plugin> 

लेकिन जब मैं यह कोशिश मैं फार्म की त्रुटियों:

[ERROR] Failure executing javac, but could not parse the error: 
javac: invalid flag: -J-Xdebug 
Usage: javac <options> <source files> 
use -help for a list of possible options 

करीब जांच पर, ऐसा लगता है कि Maven-compiler- प्लगइन सभी संकलक तर्कों को एक विकल्प फ़ाइल में लिखता है, और 'javac @optionfile' जैसे javac को आमंत्रित करता है। http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html पर javac के लिए आधिकारिक दस्तावेज के अनुसार:

@argfiles कि विकल्प और स्रोत फ़ाइलों को सूचीबद्ध करता है एक या अधिक फ़ाइलें। इन फ़ाइलों में -जे विकल्पों की अनुमति नहीं है।

तो ऐसा लगता है कि मैवेन-कंपाइलर-प्लगइन में विकल्प काम नहीं करेगा - यह तर्क फ़ाइलों का उपयोग करना चाहता है, तर्क फ़ाइलों में मेरे इच्छित विकल्प नहीं हो सकते हैं।

मैंने इसके बजाय मानचित्र का उपयोग करने के लिए कुछ सुझाव भी देखे हैं - हालांकि जब मैंने कोशिश की तो इसी तरह के परिणाम भी थे।

क्या कोई अन्य विकल्प हैं?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.0</version> 
    <configuration> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <executable><!-- path-to-javac-invoking-script --></executable> 
     <compilerVersion>1.3</compilerVersion> 
    </configuration> 
    </plugin> 

और एक स्क्रिप्ट/बल्ला फाइल करने के लिए एक रास्ता है कि असली javac के साथ सभी तर्कों से होकर गुजरेगा के साथ प्रदान करते हैं:

+2

लगता है कि आप एक ज्ञात समस्या पर पहुंच जाते हैं - http://jira.codehaus.org/browse/MCOMPILER-129 – radai

उत्तर

4

संकलक प्लगइन ताकि आप कुछ इस तरह इस्तेमाल कर सकते हैं, specify the location of the jdk करने की अनुमति देता आपके अतिरिक्त तर्क के साथ?

संपादित - the original issue संकलक प्लगइन 2.4+ में तय किया गया है और यह सिर्फ मेरी वैकल्पिक हल के बिना अब काम करना चाहिए

+0

वैसे मैं पुष्टि कर सकता हूं कि यह काम करता है ... हालांकि यह निश्चित रूप से एक कामकाज है, लेकिन बग्स को अपस्ट्रीम तय करने और प्लगइन के नए संस्करण की प्रतीक्षा करने से कम, यह काम करेगा :) –

+0

@ रिचर्डडाउनर - आपने नहीं पूछा सुंदर के लिए ;-) – radai