2011-07-30 10 views
5

मेरा जार नहीं चल रहा है, मैं कह सकता हूं कि लॉग 4j फ़ाइल लॉग फ़ोल्डर बनाने के लिए प्रबंधित होने के बाद इसे चलाने की कोशिश करता है लेकिन तब कुछ भी नहीं होता है और लॉग खाली हो जाता है।मैवेन एक्जिक्यूटिव जार बाहरी पथ पर पुस्तकालयों के साथ

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
    <outputDirectory>${staging.dir}/bin</outputDirectory> 
     <archive> 
     <manifest> 
      <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      <addClasspath>true</addClasspath> 
      <mainClass>com.Main</mainClass> 
      <classpathPrefix>../lib/</classpathPrefix> 
     </manifest> 
     </archive> 
    </configuration> 
    </plugin> 

और

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${staging.dir}/lib</outputDirectory> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

:

मेरे समस्या मैं एक फ़ोल्डर बुलाया बिन में जार फ़ाइल और lib

नामक एक फ़ोल्डर में पुस्तकालयों मैं इस triying हूँ है मैंने मेवेन-असेंबली-प्लगइन के साथ भी कोशिश की, लेकिन यह जार पर सब कुछ पैक करता है और मुझे वास्तव में फ़ोल्डर्स बिन और lib

होना चाहिए

इसे सही तरीके से काम करने के लिए मुझे सेटअप करने की क्या ज़रूरत है?

संपादित करें: META-INF फ़ाइल

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: me 
Build-Jdk: 1.6.0_26 
Main-Class: com.Main 
Class-Path: ../lib/ojdbc6-11.2.0.jar ../lib/sqljdbc4-4.2.0.jar ../lib/ 
mysql-connector-java-5.1.17.jar ../lib/hibernate-core-3.6.5.Final.jar 
../lib/antlr-2.7.6.jar ../lib/commons-collections-3.1.jar ../lib/dom 
4j-1.6.1.jar ../lib/hibernate-commons-annotations-3.2.0.Final.jar ../ 
lib/hibernate-jpa-2.0-api-1.0.0.Final.jar ../lib/jta-1.1.jar ../lib/s 
lf4j-api-1.6.1.jar ../lib/hibernate-entitymanager-3.6.5.Final.jar ../ 
lib/cglib-2.2.jar ../lib/asm-3.1.jar ../lib/javassist-3.12.0.GA.jar . 
./lib/slf4j-log4j12-1.6.1.jar ../lib/log4j-1.2.16.jar ../lib/commons- 
codec-1.5.jar ../lib/lablib-checkboxtree-3.3-20110114.141734-3.jar 

समाधान

पता चला है META-INF फ़ाइल सही नहीं है। कारण यह है कि Maven-archiver-प्लगइन डिफ़ॉल्ट व्यवहार के रूप में एक टाइमस्टैम्प के साथ स्नैपशॉट पुस्तकालयों का नाम बदलता है

कि उपयोग इस, के रूप में Maven Archiver डॉक द्वारा निर्देश ओवरराइड करने के लिए:

<plugins> 
    <plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <archive> 
     <manifest> 
      <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      <addClasspath>true</addClasspath> 
      <useUniqueVersions>false</useUniqueVersions> 
      <mainClass>com.Main</mainClass> 
      <classpathPrefix>../lib/</classpathPrefix> 
     </manifest> 
     </archive> 
    </configuration> 
    </plugin> 
</plugins> 

उसके अलावा, मुझे आशा है कि लोग शुरुआत में मेवेन कोड उपयोगी पाएं क्योंकि यह काम करता है, बस अपनी परियोजनाओं में स्नैपशॉट्स से सावधान रहें

+0

आपकी मैनिफ़ेस्ट फ़ाइल कैसे दिखती है? क्या आपने वास्तव में निर्भर फ़ोल्डर को lib फ़ोल्डर में रखा है? – Raghuram

+0

सबकुछ वहां है और मैनिफ़ेस्ट अच्छा दिखता है, बस अभी संपादित करने के लिए संलग्न है – javaNoober

+0

यूए रे राइट एक मेटा-आईएनएफ मुद्दा है, मेरा आखिरी lib lablib-checkboxtree-3.3-SNAPSHOT.jar है, कंसोल पर जार चलाने की कोशिश कर रहा है और यह कर सकता है पुस्तकालय नहीं मिला। मैंने lib को हटाने और पुनः लोड करने का प्रयास किया लेकिन यह SNAPSHOT शब्द के बजाय thtat numebr को रखता रहता है, क्यों? – javaNoober

उत्तर

3

उपरोक्त सभी ठीक लगता है। यहां कुछ चीजें/प्रश्न हैं जिन्हें आप कोशिश/पुष्टि/उत्तर देना चाहते हैं:

  • क्या आप इसे कमांड लाइन से चला रहे हैं? अर्थात। java -jar <your.jar> का उपयोग कर रहे हैं या आप इसे शुरू कर रहे हैं उदा। फ़ाइल को डबल-क्लिक करके इत्यादि? यदि नहीं, तो
  • mvn exec:java का उपयोग करके यह देखने के लिए कि क्या आपका ऐप (maven-) नियमित रूप से शुरू होता है, यह देखने के लिए कमांड लाइन से इसे चलाने का प्रयास करें। http://mojo.codehaus.org/exec-maven-plugin/usage.html देखें यदि आप exec प्लगइन
  • से परिचित नहीं हैं, तो क्या आप वास्तव में प्रारंभ होने की पुष्टि करने के लिए लॉगिंग के बजाय नियमित जावा System.out.println का उपयोग कर सकते हैं? शून्य आकार का लॉग होने के कारण लॉगिंग कॉन्फ़िगरेशन समस्या हो सकती है
  • मुझे लगता है कि आपके ऊपर कुछ डीबी पुस्तकालय हैं। क्या आप कुछ प्रिंटल (या बेहतर लॉगिंग कर सकते हैं, लेकिन केवल आपके लॉगिंग की पुष्टि करने के बाद ही) मूल प्रारंभिकता के आस-पास के वक्तव्य, यह पुष्टि करने के लिए कि आप वहां केवल रुक रहे हैं (बशर्ते यह हो रहा है - आप किसी भी अपवाद या अन्य मुद्दों का उल्लेख नहीं करते हैं विशिष्ट में)

बहुत सारे वास्तविक एप्लिकेशन कोड पर निर्भर करता है, लेकिन उम्मीद है कि उपर्युक्त में से कुछ इस मुद्दे को इंगित करने में आपकी सहायता कर सकते हैं।

एक साइड नोट के रूप में, क्या आपका मुख्य वर्ग वास्तव में com.Main है? यदि हां, तो क्या मैं इसे कुछ और उचित में बदलने का सुझाव दे सकता हूं - उदा। com.yourdomain.yourapp.Main या इन पंक्तियों के साथ कुछ। यह नहीं कि यह उपर्युक्त परिणाम बदल देगा, केवल एक स्टाइलिस्ट टिप्पणी।

+0

मैं इसे डबल-क्लिक कर रहा था, इसलिए मुझे कोई त्रुटि नहीं दिखाई दे रही थी, अब मैंने कंसोल का उपयोग किया था, मुझे लगता है कि यह अंतिम लाइब्रेरी लोड नहीं कर सकता है, नाम lablib-checkboxtree-3.3-SNAPSHOT होना चाहिए, हालांकि मैवेन इसे बदल रहा है उस lablib-checkboxtree-3.3-20110114.141734-3 पर, मैंने मैन्युअल रूप से lib नाम बदल दिया है और यह पुष्टि करता है कि यह काम करता है, इसे कैसे ठीक किया जाए? – javaNoober

+0

और चिंता न करें कि नाम कॉम नहीं है। मुख्य;) – javaNoober

+0

क्या आप अपने '.m2' फ़ोल्डर से आर्टिफैक्ट को हटाने का प्रयास कर सकते हैं (यदि आप परिचित नहीं हैं तो इसे देखें: http://stackoverflow.com/questions/6081617/ गायब-maven-m2-फ़ोल्डर) और फिर फिर से 'mvn पैकेज' आज़माएं? आपको इसे .m2/रिपोजिटरी/ /lablib-checkboxtree/3.3-SNAPSHOT में ढूंढना चाहिए - बस उस फ़ोल्डर को कहीं और (बैकअप समाधान के रूप में) ले जाएं और फिर इसे फिर से इंस्टॉल करें, हालांकि आपने पहले किया था (क्या आपने 'mvn इंस्टॉल किया था: install- फ़ाइल 'या आपके पास साइट पर नेक्सस की तरह कुछ है?)। आपको पुष्टि करनी चाहिए कि आपके पास lablib-checkboxtree-3.3-SNAPSHOT.jar है –

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