2011-07-18 17 views
5

मैवेन-वॉर-प्लगइन में archiveClasses विकल्प है, जो एक ही .jar में सभी कक्षाओं को संकुल करता है, और फिर उस जार के साथ lib/फ़ोल्डर में .war फ़ाइल बनाता है।मैवेन युद्ध प्लगइन: संग्रह संग्रह के बिना संग्रह क्लास

मुझे ऐसा करने की ज़रूरत है, लेकिन क्लास निर्देशिका में संसाधन फ़ाइलों को छोड़ दें, ताकि वे क्लासपाथ से अभी भी पहुंच सकें लेकिन संशोधित करना आसान हो।

ऐसा करने का सबसे आसान तरीका क्या है?

उत्तर

0

आपको यह निर्दिष्ट करने में सक्षम होना चाहिए कि वे संसाधन कहां हैं। यह आमतौर पर संसाधनों के लिए src/मुख्य/संसाधनों में लग रहा है, लेकिन आप की कोशिश कर सकते हैं यदि आप उन्हें जावा स्रोत पेड़ में की जरूरत है:

+0

नहीं-नहीं। वे वास्तव में src/main/संसाधनों में हैं, लेकिन मैं बस उन्हें .war फ़ाइल के अंदर कक्षाओं/निर्देशिका में पैक किया जाना चाहता हूं, जबकि जावा .class फ़ाइलों को lib/निर्देशिका में .jar के अंदर होना चाहिए। – weekens

4

शायद तुम प्लगइन विन्यास में एक WebResource के रूप में अपने संसाधनों फ़ोल्डर कॉन्फ़िगर करने के लिए कोशिश कर सकते हैं ।

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
     <webResources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <targetPath>WEB-INF/classes</targetPath> 
       <filtering>true</filtering> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 
+0

यह काम करता है, लेकिन संसाधनों को एक जार में भी डुप्लिकेट किया जाता है। – kolobok

0

आप समस्या को हल करने के लिए इस तरह कर सकते हैं:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <warName>${project.war.name}</warName> 
     <warSourceExcludes>**/*.class</warSourceExcludes> 
     <archiveClasses>true</archiveClasses> 
    </configuration> 
</plugin> 
2

एक पंक्ति जवाब: वहाँ maven-war-plugin में उपलब्ध कराई गई कोई विकल्प archiveClasses ध्वज का उपयोग कर बनाई गई जार से संसाधनों को बाहर करने के हैं ।

इस समस्या के लिए संभव और आसान समाधान का src/main/java/webapp/WEB-INF/classes निर्देशिका के लिए src/main/java/resources निर्देशिका के अंतर्गत फ़ाइलें वर्तमान स्थानांतरित करने के लिए है।

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