2013-01-02 30 views
7

कृपया मेरी मदद करें मैं मैवेन के लिए नया हूं। मैं मेवेन प्रोजेक्ट फ़ोल्डर से अलग निर्देशिका में एक लक्षित फ़ोल्डर उत्पन्न करने की कोशिश कर रहा हूं। मेरी आवश्यकताओं के अनुसार, जेनरेट की गई युद्ध फ़ाइल को मेरे मैवेन प्रोजेक्ट का निर्माण करते समय C: \ naresh फ़ोल्डर जैसे किसी अन्य फ़ोल्डर में रखा जाना चाहिए।प्रोजेक्ट निर्देशिका के बाहर आउटपुट उत्पन्न करने के लिए मेवेन को कॉन्फ़िगर करना

यहाँ मेरी कोड:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <packaging>war</packaging> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test</groupId> 
    <artifactId>project</artifactId> 
    <version>1.0</version> 

    <build> 
    <directory>${project.basedir}/target</directory> 
    <outputDirectory>C:\Software\${project.basedir}/target</outputDirectory> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 

    </build> 
</project> 
+1

सवाल अलग लेआउट होने कारण है कि आप की क्या ज़रूरत है है में रखा जाता है एक तैनाती फ़ोल्डर उपयोग कर रहा हूँ? – khmarbaise

+0

@khmarbaise, कभी-कभी हमने स्थानीय स्तर पर विकास और परीक्षण को तेज करने के लिए इस तरह की व्यवस्था की है। लेकिन इन कॉन्फ़िगरेशन को वास्तव में प्रोड या यूएटी वातावरण में पोस्ट नहीं किया जाता है। – Jaikrat

+0

इस प्रकार की कॉन्फ़िगरेशन प्रदर्शन में सुधार नहीं करेगा। बिल्कुल विपरीत कारण यह प्रत्येक सीआई solutoin आदि पर असफल हो जाएगा – khmarbaise

उत्तर

10

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

<build> 
    <outputDirectory>${user.home}/${project.artifactId}/target</outputDirectory> 
    ... 
</build> 

इस रूट निर्देशिका के रूप में user.home प्रणाली संपत्ति का उपयोग करता है, और <artifactId/> ('परियोजना') के नाम पर एक फ़ोल्डर में उत्पादन निर्देशिका बनाता है। सभी जावा सिस्टम properties पोम में उपलब्ध हैं। यदि आपको इसे कहीं और बनाने की आवश्यकता है, तो आप इसे उपर्युक्त निर्देशिका से संबंधित बना सकते हैं।

का उपयोग बजाय Maven युद्ध प्लगइन:

अपने प्रश्न इंगित करता है कि आप वास्तव में सिर्फ, मैं सुझाव है कि आप output directory में के लिए विन्यास को संशोधित करने के लिए एक अलग निर्देशिका विरूपण साक्ष्य (युद्ध फ़ाइल) उत्पादन की जरूरत के बाद से मेवेन-युद्ध-प्लगइन। उदाहरण के लिए:

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0</version> 
     <configuration> 
      <outputDirectory>${user.home}/${project.artifactId}</outputDirectory> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

धन्यवाद श्रीमान मैं इस तरह से कोशिश करेंगे .. – Naresh

2

पहली बात Maven के बारे में जानने के लिए है: Maven यह सम्मेलनों उन सम्मेलनों में से एक एक target folder which is located under the current project चल रहा है और नहीं कहीं और है है। और इसके अलावा और पूर्ण नो-गो आपके पोम में कुछ पूर्ण फ़ोल्डर परिभाषा डाल रहा है।

0

स्वीकार किए जाते हैं जवाब के साथ बहुत समान है, मैं जो एक डोकर

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>${project.build.directory}/deployments</outputDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 

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

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