2012-12-12 7 views
14

मैं एक निश्चित प्लग-इन निष्पादित करने के लिए मेवेन का उपयोग करना चाहता हूं, जिसे केवल स्रोत कोड की आवश्यकता है, लेकिन मैं नहीं चाहता कि मैवेन कुछ भी संकलित करे (अधिकतर क्योंकि प्रोजेक्ट सिर्फ संकलित नहीं होता है)।मैवेन स्किप संकलन

मैवेन को संकलन चरण को छोड़ने के लिए कैसे कहूं और बस प्लग-इन लॉन्च करें और फिर जेनरेट किए गए संसाधनों को एक अच्छे जार में पैकेज करें? (अंतिम चरण की प्रक्रिया पहले से ही मेरे लिए जाना जाता है।)

अतिरिक्त जानकारी:

इसलिए हम अभी बहुत कुछ करने की कोशिश की, जैसे:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.0</version> 
    <configuration> 
     <excludes> 
      <exclude>**/*</exclude> 
     </excludes> 
     <source>1.7</source> 
      <target>1.7</target> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>deploy</phase> 
     </execution> 
    </executions> 
</plugin> 

हालांकि जब हम करते हैं

[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ project --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling ALOTOF source files to /home/myname/dir/dir/project/target/classes 

संदेश संपादित ओएफसी: एक mvn package हम इस मिलता है।

उत्तर

-1

मैं उस अलग आर्टिफैक्ट के निर्माण के लिए एक अलग पोम परिभाषित करता हूं।

उस पोम में, आप केवल अपनी संसाधन पीढ़ी प्लगइन और पैकेजिंग वाले का उपयोग करते हैं।

तब आपको इसके बारे में चिंता करने की ज़रूरत नहीं है।

4

मेवेन कार्यक्षमता आंशिक रूप से प्लगइन में व्यवस्थित है, जिसमें लक्ष्य हैं। इन लक्ष्यों को जीवन चक्र के भाग लेने के बिना निष्पादित किया जा सकता है। उदाहरण के लिए जार-जार प्लगइन का लक्ष्य के लिए आप आह्वान होगा:

mvn jar:jar 

आप the list of available plugins के माध्यम से ब्राउज़ यदि आप propably functionalyity आप देख रहे हैं मिल जाएगा। यदि आवश्यक हो तो आप उन फ़ाइलों को चुनने के लिए "असेंबली" भी परिभाषित कर सकते हैं जिन्हें आप संग्रह में बंडल करना चाहते हैं।

13
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>default-compile</id> 
     <phase>compile</phase> 
     <goals> 
      <goal>compile</goal> 
     </goals> 
     <configuration> 
     <skipMain>true</skipMain> <--Skip 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

मुख्य स्रोत के बाईपास संकलन करने के लिए 'सही' को यह सेट। इसका उपयोग अनुशंसित नहीं है, लेकिन अवसर पर काफी सुविधाजनक है। उपयोगकर्ता संपत्ति है: maven.main.skip।

mvn package -Dmaven.main.skip

2

डिफ़ॉल्ट रूप से Maven संकलन रोकने के लिए, पहले सुनिश्चित करें कि Maven-संकलक प्लगइन के विन्यास useIncrementalCompilation है बनाना = false:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <useIncrementalCompilation>false</useIncrementalCompilation> 
    </configuration> 
</plugin> 

इसके अलावा, मामले में आपकी मेवेन प्रोफाइल मेवेन-क्लीन-प्लगइन का उपयोग करती है, फिर डिफ़ॉल्ट रूप से यह निर्देशिका कॉन्फ़िगर करता है और हटा देता है project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, और project.reporting.outputDirectory में एड।

इन डिफ़ॉल्ट सफाई को अक्षम करने के लिए जोड़ maven-सफाई प्लगइन विन्यास: excludeDefaultDirectories = सच:

<excludeDefaultDirectories>true</excludeDefaultDirectories> 
संबंधित मुद्दे