2012-07-06 6 views
10

मैवेन और ग्रहण डब्ल्यूटीपी के साथ मुझे एक बहुत ही अजीब समस्या है। मेरे पास एक बहु-मॉड्यूल प्रोजेक्ट है, चलो इसे project पर कॉल करें। इसमें दो मॉड्यूल project-base और project-web शामिल हैं। मेरे पास वर्कस्पेस रिज़ॉल्यूशन सक्षम है (और यह कई अन्य समान मैवेन प्रोजेक्ट्स के साथ ठीक काम करता है)।डब्ल्यूटीपी प्लगइन एक जार की जगह एक मैवेन निर्भरता को फ़ोल्डर के रूप में क्यों तैनात करता है?

project-baseproject-web की निर्भरता है और इसे सामान्य रूप से जार फ़ाइल के रूप में तैनात किया जाता है। , Dependency deployed as folder, not as jar

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

project-web कार्यक्षेत्र से तीन निर्भरताओं का समाधान किया जा रहा है। उनमें से दो जार के रूप में सही ढंग से तैनात किए जाते हैं, लेकिन तीसरा नहीं है।

project-base के pom.xml यहाँ दिखाया गया है:

<dependency> 
    <groupId>com.company.project</groupId> 
    <artifactId>project-base</artifactId> 
    <version>${project.version}</version> 
</dependency> 

<dependency> 
    <groupId>com.company.project</groupId> 
    <artifactId>project-base</artifactId> 
    <version>${project.version}</version> 
    <type>test-jar</type> 
    <scope>test</scope> 
</dependency> 

मैं एक विचार क्यों एक नहीं है:

<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"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <artifactId>project</artifactId> 
     <groupId>com.company.project</groupId> 
     <version>4.0.0</version> 
    </parent> 
    <artifactId>project-base</artifactId> 
    <name>projectBase</name> 
    <packaging>jar</packaging> 

    <properties> 
     <project.build.sourceEncoding>windows-1251</project.build.sourceEncoding> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.3.2</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>jar</goal> 
          <goal>test-jar</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>3.0</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-project-info-reports-plugin</artifactId> 
       <version>2.4</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

निर्भरता project-base के रूप में यह project-web में परिभाषित किया गया है इस तरह दिखता है निर्भरता इतनी अजीब तरीके से तैनात की गई है और मुझे नहीं पता कि इसे कैसे ठीक किया जाए। मैंने परियोजनाओं को साफ किया, टोमकैट, वेब प्रोजेक्ट को फिर से तैनात किया, मेरे पूरे मैवेन रिपोजिटरी को शुद्ध कर दिया, वीसीएस से ताजा पूरी परियोजना की जांच की, कुछ भी मदद नहीं की।

क्या ग्रहण डब्ल्यूटीपी के बजाय एक फ़ोल्डर एक जार फ़ाइल के रूप में इस निर्भरता को तैनात करने का कारण बन सकता?

+0

हालांकि यह समझा नहीं है ** क्यों **, [यह प्रश्न] (http://stackoverflow.com/questions/8944278/m2eclipse-and-or-wtp-not-packaging-a- निर्भरता- सही ढंग से) इसके आसपास एक काम प्रदान करता है जिसने हमें – chrisbunney

+0

@chrisbunney जानकारी के लिए धन्यवाद दिया! मैंने चाल की कोशिश की, लेकिन यह मेरे लिए काम नहीं कर सका। मैंने सभी ग्रहण विशिष्ट फ़ाइलों को हटा दिया और मैवेन को पुन: उत्पन्न करने दिया, लेकिन स्थिति अपरिवर्तित थी। – guerda

उत्तर

0

मैंने अंततः मेरी समस्या हल की: project-base प्रोजेक्ट के लिए मुझे संपत्ति अनुभाग परिनियोजन असेंबली के साथ समस्याएं थीं। ग्रहण के रूप में, मैं इसे सहेज नहीं सका, वर्तमान पृष्ठ में त्रुटियां हैं।

फिर मैंने सेटिंग्स फ़ाइल .settings/org.eclipse.wst.common.component में देखा। यह पूरी तरह से खाली था (मुझे नहीं पता क्यों)। मैंने फिर निम्नलिखित ब्लॉक जोड़ा:

<?xml version="1.0" encoding="UTF-8"?> 
<project-modules id="moduleCoreId" project-version="1.5.0"> 
    <wb-module deploy-name="project-base"> 
     <wb-resource deploy-path="/" source-path="/src/main/java"/> 
     <wb-resource deploy-path="/" source-path="/src/main/resources"/> 
    </wb-module> 
</project-modules> 

इसके बाद, सेटिंग्स पृष्ठ फिर से पहुंच योग्य है और JAR सही ढंग से इकट्ठा किया गया है। कार्यक्षेत्र संकल्प भी काम करता है।

2

मुझे बस एक ही समस्या थी। संस्करण 1.2 में m2e को अपग्रेड करना इसे ठीक करता है।

3

मैं "तैनाती विधानसभा" परियोजना सेटिंग पृष्ठ में निर्भरता को हटाने और इसे वापस जोड़कर समस्या हल हो।

+0

संकेत के लिए धन्यवाद। यह मेरे लिए काम नहीं करता था, क्योंकि मैं इस सटीक सेटिंग पेज को भी नहीं खोल सका। विवरण के लिए मेरा जवाब देखें। – guerda

+0

यह मेरे लिए काम किया .... क्या एक कष्टप्रद बग। मेरा पिछला काम मैन्युअल रूप से तैनाती lib फ़ोल्डर में जार को कॉपी/पेस्ट कर रहा था: / – Selwyn

0

उस फ़ोल्डर एक विस्फोट JAR है (इसलिए यह एक जार फ़ाइल की तरह है, लेकिन एक फ़ोल्डर के रूप में दिखाई दे रहा, संग्रहीत नहीं), मेरे मामले में यह एक सर्वर कनेक्टर मुद्दा था।

हालांकि मैं बिलाव के बजाय JBoss का उपयोग करें, यह इस समस्या के साथ संघर्ष कर दूसरों के लिए उपयोगी हो सकता है।

बशर्ते आप नवीनतम JBoss उपकरण अपने ग्रहण पर स्थापित है, तो आप सर्वर सर्वर को ध्यान में रखते सेटिंग खोलने के लिए डबल क्लिक कर सकते।

तैनाती टैब पर, आप हां/प्रत्येक परियोजना के लिए कोई पिन मॉड्यूल चुन सकते हैं। जब मैंने अपनी उपयोगिता जार फ़ाइलों के लिए हाँ चुना, तो जेबॉस ने फिर निर्भरता को एक फ़ोल्डर की बजाय सामान्य जेएआर फ़ाइल के रूप में तैनात किया।

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