2008-12-15 13 views
35

क्या कुछ भी है जो मैं pom.xml में जोड़ सकता हूं जो जेनरेट की गई WAR फ़ाइल को लक्ष्य निर्देशिका से मेरी टॉमकैट की webapps निर्देशिका में कॉपी करेगा?मैवेन: टोमकैट की वेबपैस निर्देशिका में WAR की प्रतिलिपि बनाएँ

उत्तर

15

मैं Maven युद्ध प्लगइन का इस्तेमाल किया: http://maven.apache.org/plugins/maven-war-plugin/usage.html

+6

जोड़ने के लिए कोड है: मैवेन-वॉर-प्लगइन आर्टिफैक्ट के कॉन्फ़िगरेशन टैग में – techzen

+0

इस मामले में कोई ऐसा कैसे कर सकता है जहां वेबएप फ़ोल्डर है एक दूरस्थ सर्वर पर (उदाहरण के लिए यह एससीपी पर प्रतिलिपि बना सकता है?)। मैं इसे मैवेन-वैगन-एसएसएच लाइब्रेरी के साथ करने की कोशिश कर रहा हूं, और यह लगभग काम करता है, लेकिन मैं यह नहीं समझ सकता कि कौन सी फाइलें भेजी जाती हैं और कहां जाती हैं। – iX3

7

आप http://cargo.codehaus.org/Deploying+to+a+running+container का उपयोग कर सकते हैं और तदनुसार इसे कॉन्फ़िगर कर सकते हैं।

+0

एक को तैनात करना आसान है! :) दो को तैनात करना मुश्किल है। :((जब तक आप दो बार तैनाती कमांड चलाते हैं) http://stackoverflow.com/questions/732275/maven-deploy-to-multiple-tomcat-servers – cgp

6

आप जेटी प्लगइन पर भी एक नज़र डाल सकते हैं। बस "एमवीएन जेट्टी: रन-वार" टाइप करें और जेटी को अपनी युद्ध-फ़ाइल चलाना चाहिए।

संपादित करें: जेटी एक हल्के वजन सर्वलेट कंटेनर है जो विकास और परीक्षण के लिए उपयुक्त है। यह शुरू करने के लिए तेजी से बिजली भी है।

+0

मैं युद्ध फ़ाइल नहीं चलाऊंगा। मैं इसे रखना चाहता हूं इसे मैन्युअल रूप से करने के बजाए टोमकैट की वेबपैप्स निर्देशिका में। – l15a

3

आदर्श नहीं, लेकिन अगर आप वास्तव में एक अजीब एप्लिकेशन सर्वर सेटअप है, तो आप हमेशा एक antrun कार्य निष्पादित करने के लिए सेट जब पैकेजिंग

<build> 
    .... 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
      <execution> 
       <phase>package</phase> 
       <configuration> 
       <tasks> 
        <!-- Ant copy tasks go here --> 
       </tasks> 
       </configuration> 
       <goals> 
       <goal>run</goal> 
       </goals> 
      </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    </build> 
5

वैकल्पिक रूप से चलाया जाता है इस्तेमाल कर सकते हैं, तो आप बिल्ला हो सकता था अपने लक्ष्य में देखो निर्देशिका और सीधे वहां से तैनात करें।

अपने context.xml या server.xml के प्रसंग तत्व में:

<Context path="" docBase="/path/to/target/exploded"> 
... 
</Context> 

तो फिर तुम युद्ध का उपयोग कर सकते हैं: अपने विस्फोट युद्ध बनाने के लिए लक्ष्य फट गया।

+0

क्या आप इसे सेटअप करने के बारे में अधिक जानकारी दे सकते हैं। मैंने इसे पहले किया है लेकिन Google को उदाहरण कॉन्फ़िगरेशन ढूंढने में परेशानी हो रही है। – Drew

+0

इस उत्तर को उतारना। हालांकि कई अन्य तरीकों से काम करते हैं, यह मेरे लिए सबसे तेज़ था (1।अगले सबसे तेज़ दृष्टिकोण के साथ 5min बिल्ड बनाम 7min) – samspot

55
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>U:\JBoss6\server\default\deploy\</outputDirectory> 
      </configuration> 
     </plugin> 

एक बार जब आप इसे अपने pom.xml में शामिल किया है के साथ ऐसा कर सकते हैं, आप से युद्ध फ़ाइल कॉपी कर सकते mvn package या mvn war:war पर कॉल करना। Maven परियोजना के नाम के साथ \ Tomcat7 \ webapps फ़ोल्डर:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
      <warName>${name}</warName> 
      <outputDirectory>C:\Tomcat7\webapps</outputDirectory> 
      </configuration> 
     </plugin> 

यह सी में एक युद्ध फ़ाइल डाल देंगे:

+3

आप सुंदर हैं, धन्यवाद। यही कारण है कि मैं एसओ प्यार करता हूँ। लोग Google का उपयोग करने के बारे में चिंतित हैं लेकिन यह बहुत बेहतर है। – null

+3

@ हम में से अधिकांश Google खोज के माध्यम से यहां पहुंचते हैं, बस कह रहे हैं। –

+2

मैं हर्षूल से सहमत हूं कि Google एक खोज इंजन है जो अधिकतर विभिन्न स्टैक ओवरफ्लो परिणामों को इकट्ठा करने के लिए उपयोग किया जाता है। लेकिन स्टैकओवरफ्लो में विकास प्रश्नों के लिए अब तक का सबसे संक्षिप्त उत्तर है ... इस बिंदु पर कोई फ्लाफ नहीं है। प्रौद्योगिकियों के मालिकों की तुलना में बहुत बेहतर है यानी जावा (ओरेकल) .. आदि ... –

6

यह सही दृष्टिकोण है।

+0

नहीं, यह नहीं है। यह बहुत हैकी रास्ता है। – MariuszS

0

उपरोक्त सभी उत्तरों के लिए धन्यवाद।

नीचे दिया गया उत्तर मेरे लिए काम करता है। यह सिर्फ एक समेकित है। कुछ खास नहीं!

</project> 
........ 
    <build> 
    <finalName>HelloWorld1</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>C:\Program Files (x86)\apache-tomcat-8.5.8\webapps\</outputDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
अधिक जानकारी के लिए

। अधिक जानकारी के लिए कृपया dependency:copy आधिकारिक पृष्ठ देखें।

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