2009-12-28 19 views
5

मैं mvn archetype:create ... साथ एक काम कर Maven परियोजना मैं mvn compile साथ सभी स्रोतों को संकलित कर सकते हैं की स्थापना की है, लेकिन मैं समय में भी एक एकल फाइल को संकलित करने में सक्षम होना चाहता हूँ।मैवेन के साथ एक फ़ाइल को संकलित कैसे करें?

एक मनमाना एकल जावा फाइल को संकलित करने के Maven पूछने के लिए एक तरीका होता है?

धन्यवाद

अपडेट 1:

मैं कमांड लाइन पर एकल फाइल निर्दिष्ट करना होगा। मैं कमांड लॉन्च के पल में फ़ाइल का चयन करूंगा। मैं pom.xml को संशोधित नहीं करता।

अद्यतन 2:

क्यों मैं इस पूछा? क्योंकि मैं विम संपादक के साथ autotest-java का उपयोग करूंगा।

autotest-java जेनटेस्ट का एक हैक/विस्तार है (जो एक रूबी एप्लिकेशन है जो रूबी फ़ाइल के प्रत्येक सहेज पर स्वचालित रूप से यूनिट परीक्षण लॉन्च करता है)।

autotest-java एक Maven परियोजना संरचना की आवश्यकता है और आवश्यकता है कि अपने संपादक/आईडीई प्रदर्शन "बचाने पर संकलन"। असल में यह पहचान नहीं आता है कि जब .java फ़ाइल संशोधित होती है लेकिन इसके बजाय यह संशोधनों के लिए .class फ़ाइलों के लिए निगरानी रखती है।

मैं सफलतापूर्वक NetBeans के साथ Autotest-जावा (जो समर्थन "बचाने पर संकलन"), लेकिन मैं विम के साथ यह प्रयोग करेंगे इस्तेमाल किया।

+0

क्यों? केवल एक फ़ाइल को संकलित करने का क्या फायदा होगा? –

+0

@ जोआचिम: मैं ऑटोमेट-जावा के साथ विम का उपयोग करने के लिए विम पर "सहेजें पर संकलन" सक्षम करूंगा। –

+0

यह वास्तव में केवल एक फ़ाइल को संकलित करने में सक्षम होने के लिए एक बिल्ड सिस्टम के साथ एक आवश्यक विशेषता है। सी ++ – rajeshnair

उत्तर

1

आप को configure the compiler plugin को को बाहर अन्य फ़ाइलों या को सिर्फ इतना है कि एक को शामिल करना होगा।

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <!-- put your configurations here --> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
+1

में और भी बहुत धन्यवाद, लेकिन मैं कमांड लाइन पर एकल फ़ाइल निर्दिष्ट करता हूं। मैं कमांड लॉन्च के पल में फ़ाइल का चयन करूंगा। मैं pom.xml को संशोधित नहीं करता। –

+0

प्लगइन की कॉन्फ़िगरेशन में फ़ाइल पथ के बजाय एक चर जोड़ें। – rodrigoap

+1

धन्यवाद। क्या आप समझा सकते हैं? –

3

मेरी जानकारी के लिए, इस कमांड लाइन पर संभव नहीं है। और यह ध्यान देने योग्य बात (वैकल्पिक) पैरामीटर है कि जैसा कि नीचे दिखाया excludes और includes कि आप pom.xml में संकलक प्लगइन कॉन्फ़िगर करने के लिए परिभाषित कर सकते हैं अनुचित हैं लायक है:

 
$ mvn help:describe -Dcmd=compiler:compile -Ddetail 
[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'help'. 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building sandbox 
[INFO] task-segment: [help:describe] (aggregator-style) 
[INFO] ------------------------------------------------------------------------ 
[INFO] [help:describe {execution: default-cli}] 
[INFO] 'compiler:compile' is a plugin goal (aka mojo). 
Mojo: 'compiler:compile' 
compiler:compile 
    Description: Compiles application sources 
    Deprecated. No reason given 
    Implementation: org.apache.maven.plugin.CompilerMojo 
    Language: java 
    Bound to phase: compile 

    Available parameters: 

    ... 

    excludes 
     A list of exclusion filters for the compiler. 
     Deprecated. No reason given 

    ... 

    includes 
     A list of inclusion filters for the compiler. 
     Deprecated. No reason given 

    ... 

तो वहाँ वास्तव में क्या करना है कोई वास्तविक तरीका है आप लंबी अवधि में चाहते हैं।

लेकिन इस एक सवाल की ओर जाता है। चूंकि मेवेन वृद्धिशील संकलन का उपयोग करता है यानी यह केवल अंतिम वर्ग के बाद डिस्क पर परिवर्तित होने वाली कक्षाओं को संकलित करता है, आपको केवल एक वर्ग को संकलित करने की आवश्यकता क्यों होगी? आपका उपयोग केस क्या है?

+0

उत्तर के लिए धन्यवाद। मेरा उपयोग केस vim के साथ autotest-java का उपयोग है। –

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