2010-08-06 12 views
5

पर निर्भरताओं की प्रतिलिपि कैसे करें मैं चींटी परिप्रेक्ष्य से आ रहा हूं, इसलिए मुझे माफ़ कर दो। मुझे एहसास है कि यहां पर कुछ सवाल हैं जो पहले से ही निर्भरता के लिए कैसे हैं, लेकिन उनमें से कोई भी यह बताना नहीं चाहता कि क्या करना है।जीई युद्ध/वेब-आईएनएफ/lib

प्रश्न 1: वर्तमान में,, Maven युद्ध प्लगइन का उपयोग कर जब मैं mvn युद्ध चलाने के साथ संयोजन के रूप में: युद्ध, यह लक्ष्य फ़ोल्डर में एक युद्ध फ़ोल्डर बनाता है।

हालांकि, मैं Google ग्रहण प्लगइन द्वारा स्थापित किए गए जारों को ओवरराइट किए बिना, Google eclipse प्लगइन (gae सक्षम, gwt अक्षम) द्वारा स्थापित युद्ध/वेब-आईएनएफ/lib में सभी निर्भरताओं के जार की प्रतिलिपि बनाना चाहता हूं।

मैं एक युद्ध फ़ाइल या युद्ध निर्देशिका स्थापित नहीं करना चाहता हूं। मुझे केवल जीई जार के साथ सभी गैर-जीए जारों की प्रतिलिपि/समेकित करने की आवश्यकता है ताकि जब परियोजना जीएई वेब ऐप के रूप में चलती है, ग्रहण क्लास नॉटफाउंड अपवाद की शिकायत नहीं करेगा।

प्रश्न 2: ग्रहण में चींटी का उपयोग करते समय, मैं ग्रहण के भीतर चींटी लक्ष्य चला सकता था।

अभी, मुझे एक शेल विंडो से एमवीएन कमांड करना है (जो एक ग्रहण सत्र के अस्तित्व के लिए पारस्परिक रूप से अनजान है)। ऐसा प्रतीत होता है कि जब भी मैं निर्भरता अद्यतन करता हूं तो स्वचालित रूप से एकमात्र चीज होती है।

क्या कोई तरीका है, या ग्रहण के लिए कोई प्लगइन जो मुझे ग्रहण के भीतर एमवीएन लक्ष्यों को चलाने की अनुमति देगा?

अतिरिक्त जानकारी:

mvn dependency:copy-dependenciestarget/dependency निर्देशिका के लिए नकल में बनी रहती है, तो निम्न के साथ:

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>copy-dependencies</id> 
     <phase>process-resources</phase> 
     <goals> 
      <goal>copy-dependencies</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${basedir}/war/WEB-INF/lib/</outputDirectory> 
      <overWriteReleases>false</overWriteReleases> 
      <overWriteSnapshots>false</overWriteSnapshots> 
      <overWriteIfNewer>true</overWriteIfNewer> 
      <excludeArtifactIds>gwt-user,gwt-dev</excludeArtifactIds> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

मैं भी निरपेक्ष पथ के लिए बदल करने की कोशिश की

<outputDirectory> 
    /home/geek/eclipse/workspace/Demo-autoshoppe/holycow 
</outputDirectory> 

लेकिन holycow निर्देशिका है अभी भी खाली है और एमवीएन अभी भीपर कॉपी करने में बनी हुई है 10 निर्देशिका मेरा वर्तमान समाधान target/dependency को war/WEB-INF/lib के रूप में सॉफ्टलिंक करना है, जो एक बहुत ही खराब क्लज है। मैवेन आउटपुट डायरेक्टरी विनिर्देश के प्रति संवेदनशील क्यों नहीं है? मैं उबंटू के मेवेन 2.2 का उपयोग कर रहा हूं।

+0

ध्यान दें कि m2e - ग्रहण मेवेन प्लगइन - ग्रहण 3.8 के साथ बहुत बेहतर हो गया है। –

उत्तर

7

मेरे पास आपके लिए असली जवाब है, मेरे आदमी।

"डिफ़ॉल्ट-क्ली" निष्पादन आईडी का उपयोग करें। सुनिश्चित करें कि आप Maven 2.2+ का उपयोग कर रहे हैं। यह exec-id mojo के कमांड लाइन निष्पादन पर लागू होता है।

<build> 
    <pluginManagement> 
     <plugins> 
     <!-- Copy dependencies to war/WEB-INF/lib for GAE proj compliance. --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
      <execution> 
       <id>default-cli</id> 
       <goals> 
       <goal>copy-dependencies</goal> 
       </goals> 
       <configuration> 
       <outputDirectory>${basedir}/war/WEB-INF/lib/</outputDirectory> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>false</overWriteSnapshots> 
       <overWriteIfNewer>true</overWriteIfNewer> 
       <excludeArtifactIds>gwt-user,gwt-dev</excludeArtifactIds> 
       </configuration> 
      </execution> 
      </executions> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 

चीयर्स।

+0

धन्यवाद दोस्त ... यह एक काम करता है ... –

+0

इसे समझने के लिए एक दिन की तरह बिताया धन्यवाद! केवल सक्रिय निर्भरताओं की प्रतिलिपि बनाना अच्छा होगा फ़िल्टर किए गए लोगों (समान कलाकृति यदि, अलग संस्करण) – ZiglioUK

0

# 1 के संबंध में: मैं इस प्लगइन और आर्केटाइप http://code.google.com/p/maven-gae-plugin/ के आधार पर अपना मैवेन प्रोजेक्ट बनाने का सुझाव दूंगा (यदि आप जीएई के लिए जीडब्ल्यूटी ऐप लिख रहे हैं तो जीडब्ल्यूटी आधारित उदाहरण देखें)।

# 2 के संबंध में: ग्रहण में पूर्ण मैवेन एकीकरण के लिए m2eclipse प्लगइन देखें। यह सोनाटाइप (मेवेन के निर्माता) द्वारा लिखा गया है: http://m2eclipse.sonatype.org/

2

एक सहयोगी ने मुझे यह उत्तर ईमेल किया जो काम करता है। mvn build या mvn package के माध्यम से अनुसरण करें लेकिन सीधे mvn dependency:copy-dependencies से आगे नहीं बढ़ें।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>copy-dependencies</id> 
     <phase>package</phase> 
     <goals> 
      <goal>copy-dependencies</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${basedir}/war/WEB-INF/lib/</outputDirectory> 
      <overWriteReleases>false</overWriteReleases> 
      <overWriteSnapshots>false</overWriteSnapshots> 
      <overWriteIfNewer>true</overWriteIfNewer> 
      <excludeArtifactIds>gwt-user,gwt-dev</excludeArtifactIds> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

यह अभी भी जबरदस्त रूप से लक्ष्य/निर्भरता पर जार फ़ाइलों की प्रतिलिपि बनाता है। स्टीवन फ्रैंकोला द्वारा हालांकि [नीचे अन्य समाधान] (http://stackoverflow.com/questions/3421826/how-to-copy- निर्भरता-to-gae-war-web-inf-lib/3909756#3909756) हालांकि काम करता है। – nikhil

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