2012-10-10 18 views
9

Maven प्लगइन मेरे लिए बहुत धीमी गति से काम करता है। मेरी परियोजना में वेबपैप फ़ोल्डर में लगभग 15000 छोटी फ़ाइलें हैं (छवियां, जेएसपी, सीएसएस, आदि)। जब मैं इसे मैवेन के साथ इकट्ठा करता हूं, तो यह पहले सभी फ़ाइलों को target/myProject-1.0.0 निर्देशिका में कॉपी करता है, फिर myProject-1.0.0.war फ़ाइल बनाता है। प्रतिलिपि प्रक्रिया में 10 मिनट लगते हैं, .war का निर्माण 2 मिनट लगते हैं।स्पीड अप Maven युद्ध प्लगइन

के रूप में मैं देख रहा हूँ निर्माण बहुत तेजी से हो सकता है अगर .war फ़ाइल webapp फ़ोल्डर से सीधे इकट्ठे किए जाएंगे। यह करना संभव है?

+0

सीधे 'src/main/webapp' फ़ोल्डर से? फिर depenencies, संसाधन, आदि के बारे में क्या? – maba

+0

@ माबा निश्चित, क्यों नहीं? Jar.exe कई स्थानों से फ़ाइलों को संग्रहित कर सकता है। चींटी कार्य '' चाल आसानी से करता है। – kan

+0

यह मैवेन रास्ता नहीं है। आप उस चींटी कार्य का उपयोग करने के लिए ['maven-antrun-plugin'] (http://maven.apache.org/plugins/maven-antrun-plugin/) का उपयोग कर सकते हैं। – maba

उत्तर

4

मेरा सुझाव है कि आप maven-war-plugin के लक्ष्य का उपयोग maven-antrun-plugin कार्य के साथ करें।

war:inplace युद्ध स्रोत निर्देशिका में webapp उत्पन्न होगा। यह webapp के तहत सभी आवश्यक अतिरिक्त फ़ोल्डर्स बनाएगा।

antrun:run अपने विशेष आवश्यकताओं के अनुसार युद्ध बनाने के लिए अनुकूलित किया जा सकता।

इससे संभावित रूप से प्रदर्शन में सुधार होगा क्योंकि आपके पास मौजूद अधिकांश संसाधन फाइलें अभी भी webapp फ़ोल्डर में होंगी और कॉपी नहीं की जा रही हैं।

+0

यह कुछ बेतुका प्रतिलिपि बचाता है लेकिन युद्ध: इनस्थल भी सभी पुस्तकालयों को वेब-आईएनएफ/लिब में कॉपी करता है, जो कि अनैच्छिक और परेशानी भी है। 8- (क्या कोई वास्तव में यह कोशिश करता है? –

3

बस है कि वहाँ एक useCache सेटिंग जो काफी प्रदर्शन (~ 12 के बजाय 3 मिनट) बढ़ जाती है उल्लेख करना चाहते हैं। हालांकि यह केवल विकास के लिए स्वीकार्य है, सीआई-सर्वर के लिए नहीं, जो हमेशा साफ बनाता है।

+1

क्या आप अपना मेवेन कॉन्फ़िगरेशन शामिल कर सकते हैं जो आपने यहां वर्णित किया है? –

1

युद्ध प्लगइन के लिए कॉन्फ़िगरेशन अनुभाग में, अनावश्यक फ़ाइलें और निर्देशिकाओं को निकालने की warSourceExcludes का उपयोग करें। नीचे दिए गए उदाहरण में, निर्देशिका घटकों और नोड_मोड्यूल को विस्फोटित युद्ध के साथ-साथ अंतिम युद्ध से बाहर रखा जाएगा। मेरे मामले में इसने बिल्ड समय को 3 मिनट से 14 सेकंड तक घटा दिया।

 <configuration> 
       <warSourceExcludes> 
       components/**, 
       node_modules/** 
       </warSourceExcludes> 
     </configuration> 

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

  • कोई संबंधित समस्या नहीं^_^