2010-10-08 10 views
5

मैं एक सर्वलेट आधारित जावा प्रोजेक्ट विकसित कर रहा हूं जिसे मैवेन का उपयोग करके युद्ध के रूप में पैक किया जाना है। क्या इस तरह के प्रोजेक्ट के साथ जावास्क्रिप्ट (जेएस) फाइलों को शामिल करने का कोई तरीका है (जब परियोजना टॉमकैट सर्वर पर लोड होती है तो उन्हें कुछ यूआरएल पर उपलब्ध होना चाहिए)।एक युद्ध में पैकेजिंग जावास्क्रिप्ट फाइलें?

मैंने चारों ओर देखा है लेकिन कोई कामकाजी समाधान नहीं मिला है।

+0

यह एक समान सवाल है। http://stackoverflow.com/questions/8397357/copy-a-file-during-maven-build-phase –

उत्तर

12

शायद बेहतर समाधान मेवेन सम्मेलन से चिपकना है, जो निर्दिष्ट करता है कि आपके वेब अनुप्रयोग की मूल निर्देशिका src/main/webapp है।

तो यदि आप अपनी सभी जावास्क्रिप्ट फ़ाइलों को src/main/webapp/javascript (या src/main/webapp/js) में डालते हैं, तो उन्हें आपके अंतिम युद्ध पैकेज में एकीकृत किया जाएगा।

मेवेन वॉर प्लगइन में, वे कुछ विवरण देते हैं (उदाहरण के लिए here उदाहरण के लिए) निर्देशिकाओं की सामग्री के बारे में। उदाहरण के लिए:

|-- pom.xml 
`-- src 
    `-- main 
     |-- java 
     | `-- com 
     |  `-- example 
     |   `-- projects 
     |    `-- SampleAction.java 
     |-- resources 
     | `-- images 
     |  `-- sampleimage.jpg 
     `-- webapp 
      |-- WEB-INF 
      | `-- web.xml 
      |-- index.jsp 
      `-- jsp 
       `-- websource.jsp 

आप देख सकते हैं, आप उन संसाधनों webapp/xxx निर्देशिका में, यहां रख सकते हैं जैसे jsp फ़ाइल।

क्यूह द्वारा बताए गए अनुसार, यदि आप अपनी निर्देशिका संरचना अलग हैं तो आप मेवेन वॉर प्लगइन को भी कॉन्फ़िगर कर सकते हैं।

+0

आप सही हैं, मेरा उदाहरण-कॉन्फ़िगर किसी भी तरह से अंतर्निहित संसाधन जोड़ने के साथ बाह्य मिश्रण करता है। 'Src/main/resource' के अंतर्गत सब कुछ डिफ़ॉल्ट रूप से 'WEB-INF/classes'' फ़ोल्डर में जोड़ा जाता है। तो इसे 'युद्ध' में दो बार जोड़ा जाएगा। mwn maven परंपरा 'src/main/webapp' webapps नहीं है। – cuh

+0

@ क्यू सही। – romaintaz

3

आप maven-war-plugin का उपयोग करें और यह कुछ इस तरह कॉन्फ़िगर कर सकते हैं:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory> 
      <webResources> 
       <resource> 
        <directory>your/path/to/js</directory> 
        <targetPath>js</targetPath> 
       </resource> 
      </webResources> 
     </configuration> 
</plugin> 

देखें here

संपादित करें: शायद आप को classes फ़ोल्डर में शामिल नहीं करना चाहते हैं।

1

उन्हें src/main/webapp के अंतर्गत निर्देशिका में रखें। ऐसा लगता है कि आपने maven-archetype-webapp आर्केटाइप का उपयोग करके इसे उत्पन्न किया है।

मेरे वर्तमान एप्लिकेशन उन्हें src/मुख्य/webapp/जावास्क्रिप्ट के तहत है, और इस तरह से उन्हें JSPs में पहुँचता:

<script type="text/javascript" src="javascript/jquery-1.4.2.min.js"></script> 

(है कि src/मुख्य/webapp में jsp फ़ाइलों के लिए)

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