2012-12-19 11 views
8

मेरे आवेदन में मैंने कुछ जार परियोजना निर्भरता के रूप में सेट किए हैं। यह जार उपयोगकर्ता पुस्तकालय के रूप में जोड़े गए हैं। चूंकि मैं जेबॉस एएस 7 में एप्लिकेशन चला रहा हूं और मैं जेएसएफ सर्वर द्वारा प्रदान किए गए जेएसएफ कार्यान्वयन का उपयोग कर रहा हूं, मैंने मॉड्यूल से उन जेएसएफ जारों की प्रतिलिपि बनाई है और जेबॉस जेएसएफ नामक एक नई उपयोगकर्ता लाइब्रेरी बनाई है। इस पुस्तकालय का उपयोग ग्रहण में जेएसएफ 2 गतिशील वेब प्रोजेक्ट बनाने के लिए किया गया है। अब जब मैं इसे एक WAR फ़ाइल के रूप में निर्यात कर रहा हूं, तो उन जेएसएफ जारों की प्रतिलिपि बनाई जा रही है और युद्ध के /WEB-INF/lib में जोड़ा गया है। मैं नहीं चाहता कि इन फ़ाइलों को जोड़ा गया है क्योंकि वे कंटेनर में पहले से मौजूद हैं।जार को WAR फ़ाइल में जोड़े जाने से कैसे बाहर निकालें

क्या ऐसा करने का कोई तरीका है?

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src/common"/> 
    <classpathentry kind="src" path="src/service"/> 
    <classpathentry kind="src" path="src/web"/> 
    <classpathentry kind="src" path="src/persistent"/> 
    <classpathentry kind="src" path="src/dao"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre7"> 
     <attributes> 
      <attribute name="owner.project.facets" value="java"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss JSF"> 
     <attributes> 
      <attribute name="owner.project.facets" value="jst.jsf"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss Servlet"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss log4j"/> 
    <classpathentry kind="output" path="build/classes"/> 
</classpath> 

अपने आवेदन की तैनाती विधानसभा: enter image description here

+0

@Rahul मैंने पहले यह लिंक देखा है, समाधान स्रोत टैब से फ़ाइलों को बाहर करने का एक तरीका प्रदान करता है। –

+1

बस चींटी या मेवेन का उपयोग करें। – BigMike

+0

+1 चींटी पर सुझाव के लिए +1 (भले ही प्रश्न "ग्रहण आधारित" है) – acostache

उत्तर

2

इस

  1. ओपन प्रोजेक्ट के गुण
  2. करें तैनाती विधानसभा
  3. पुस्तकालयों चुनें, जिसे आप फिर निकालें क्लिक करें युद्ध फ़ाइल से बाहर करने की आवश्यकता की कोशिश करो। जार आपके द्वारा चयनित फ़ाइल

या .classpath फ़ाइल

<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss JSF"> 

    <attributes> 

    <attribute name="owner.project.facets" value="jst.jsf"/> 

    <attribute name="org.eclipse.jst.component.nondependency" value=""/> 

    </attributes> 

+0

अगर यह काम करता है तो कृपया मुझे बताएं। – Rahul

+0

राहुल मैंने तैनाती असेंबली की एक छवि जोड़ दी है। कोई जार नहीं है। –

+0

आप .classpath फ़ाइल <विशेषता नाम = "मालिक के लिए एक और विशेषता जोड़ने के लिए प्रयास करें कर सकते हैं .project.facets "मान =" jst.jsf "/> <विशेषता नाम =" org.eclipse.jst.component.nondependency "मान =" "/> Rahul

0
  1. ओपन प्रोजेक्ट गुण संवाद

    अधिक जानकारी के लिए इस .classpath फ़ाइल की सामग्री है।

  2. बाएं पैनल से जावा बिल्ड पथ का चयन करें।
  3. स्रोत टैब का चयन करें।
  4. परियोजना में शामिल सभी जारों की एक सूची सूचीबद्ध की जाएगी।
  5. जेएआर फ़ाइल का चयन करें और संपादन बटन पर क्लिक करें।
  6. शामिल या बहिष्कृत पैटर्न विंडो में, बहिष्कृत करें (यदि आप यही चाहते हैं) चुनें और एक पैटर्न जोड़ें। ठीक चुनें।
  7. जार की प्रत्येक पंक्ति में, दाईं तरफ आप एक प्लस या ऋण चिह्न के अनुसार देखेंगे।
+0

धन्यवाद, लेकिन मुझे खेद है, स्रोत टैब में केवल सभी स्रोत फ़ाइलों की सूची है। जार की ऐसी कोई सूची नहीं है। जार फाइलें पुस्तकालयों में सूचीबद्ध हैं। –

+0

आदेश और निर्यात टैब में अवांछित पुस्तकालयों का चयन रद्द करने का प्रयास करें। –

+0

मैंने इस विकल्प को आजमाया है। पुस्तकालय वहां हैं लेकिन वे चेक नहीं किए गए हैं। –

0

आप निर्भरता के दायरे सेट कर सकते हैं के लिए एक और विशेषता को जोड़ने का प्रयास युद्ध से निकाल दिया जाएगा करने के लिए प्रदान । यह उम्मीद करता है कि आप जेडीके या कंटेनर को रनटाइम पर निर्भरता प्रदान करने की उम्मीद करते हैं। उदाहरण के लिए, जावा एंटरप्राइज़ संस्करण के लिए वेब एप्लिकेशन बनाने के दौरान, आप सर्वलेट एपीआई और संबंधित जावा ईई एपीआई पर निर्भरता सेट करने के लिए निर्भरता सेट करेंगे क्योंकि वेब कंटेनर उन वर्गों को प्रदान करता है। यह गुंजाइश केवल संकलन और परीक्षण वर्गपथ पर उपलब्ध है, और यह संक्रमणीय नहीं है। इस दायरे के साथ निर्भरता युद्ध/कानों में शामिल नहीं की जाएगी।

<dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
     <scope>provided</scope> 
    </dependency> 
संबंधित मुद्दे