2012-11-11 9 views
10

कोई भी मुझे निम्नलिखित अपवाद के साथ समाधान सुझा सकता है। मैं एक बहु मॉड्यूल परियोजना बनाने जा रहा हूँ।पैरेंट pom.xml के लिए अमान्य पैकेजिंग, "पोम" होना चाहिए, लेकिन "कान"

जनक प्रोजेक्ट का नाम LOGICBACKEND बच्चे इस परियोजना का नाम DBAccess

मैं जो DBAccess prjoects jar फ़ाइल भी होनी चाहिए LOGICBACKEND के कान फ़ाइल की आवश्यकता है।

जब मैं mav clean install -P Developer चलाता हूं तो मुझे निम्नलिखित अपवाद मिल रहा है।

[ERROR]The project com.project1.Database:DBAccess:1.0-SNAPSHOT (C:\Project1\DBAccess\pom.xml) has 1 error 
[ERROR]Invalid packaging for parent POM com.project1.logic:LOGIC:1.0-SNAPSHOT (C:\Project1\pom.xml), must be "pom" but is "ear" @ com.project1.logic:LOGIC:1.0-SNAPSHOT, C:\Project1\pom.xml, line 6, column 13 

यह कैसे मेरे माता पिता pom.xml का हिस्सा लग रहा है

<modelVersion>4.0.0</modelVersion> 
<groupId>com.project1.logic</groupId> 
<artifactId>LOGICBACKEND</artifactId> 
<packaging>ear</packaging> 
<version>1.0-SNAPSHOT</version> 

इस तरह बच्चे pom.xml लग रहा है

<groupId>com.project1.logic</groupId> 
<artifactId>DBAccess</artifactId> 
<packaging>ejb</packaging> 
<name>DBAccess</name> 
<version>1.0-SNAPSHOT</version> 

<parent> 
    <groupId>com.project1.logic</groupId> 
    <artifactId>DBAccess</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 

किसी को भी मुझे यहाँ मदद कर सके समझने के लिए क्या हो रहा है है यहाँ गलत

किसी भी मदद के लिए अग्रिम धन्यवाद

+0

त्रुटि संदेश है बिल्कुल साफ़। एक माता पिता के पास पैकेजिंग पोम होना चाहिए। – maba

+0

लेकिन मैं पैकेजिंग कान होना चाहता हूं, यह संभव होना चाहिए – KItis

+0

हां यह संभव है लेकिन माता-पिता होने के कारण नहीं। – maba

उत्तर

12

यह सरल सेटअप एक अच्छी शुरुआत है।

 
. 
├── pom.xml 
├── services 
| ├── pom.xml 
| └── src 
|  └── main 
|   └── java 
|    └── com 
|     └── stackoverflow 
|      └── MyEjbService.java 
└── application 
    └── pom.xml 

pom.xml

<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> 

    <groupId>com.stackoverflow.Q13330930</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <name>${project.artifactId}-${project.version}</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <modules> 
     <module>services</module> 
     <module>application</module> 
    </modules> 

    <dependencies> 
    </dependencies> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.stackoverflow.Q13330930</groupId> 
       <artifactId>services</artifactId> 
       <version>${project.version}</version> 
       <type>ejb</type> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-ejb-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <ejbVersion>3.1</ejbVersion> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

services/pom.xml

<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> 
     <groupId>com.stackoverflow.Q13330930</groupId> 
     <artifactId>parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <groupId>com.stackoverflow.Q13330930</groupId> 
    <artifactId>services</artifactId> 
    <packaging>ejb</packaging> 

    <name>${project.artifactId}-${project.version}</name> 

</project> 

application/pom.xml

<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> 
     <groupId>com.stackoverflow.Q13330930</groupId> 
     <artifactId>parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <groupId>com.stackoverflow.Q13330930</groupId> 
    <artifactId>application</artifactId> 
    <packaging>ear</packaging> 

    <name>${project.artifactId}-${project.version}</name> 

    <dependencies> 
     <dependency> 
      <groupId>com.stackoverflow.Q13330930</groupId> 
      <artifactId>services</artifactId> 
      <type>ejb</type> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-ear-plugin</artifactId> 
       <version>2.7</version> 
       <configuration> 
        <defaultLibBundleDir>lib</defaultLibBundleDir> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 
+0

आपके उत्तर के लिए धन्यवाद, मुझे पता है कि आपने माता-पिता pom.xml – KItis

+0

के लिए मेवेन-कान-प्लगइन क्यों रखा है, आप इसे डाल सकते हैं कान परियोजना भी। इस मामले में यह वास्तव में कोई फर्क नहीं पड़ता। – maba

7

आप माता-पिता पोम दो कार्य देने के लिए कोशिश कर रहे हैं - कि एक माता पिता पोम (पैकेजिंग pom) के रूप में सेवारत है और आवरण कान (पैकेजिंग ear) किया जा रहा है - एक ही समय में । अपनी समस्या को हल करने के लिए आपको अपने माता-पिता के नीचे एक और मैवेन मॉड्यूल बनाना चाहिए जिसमें पैकेजिंग ear है और आउटपुट को परिभाषित करने के लिए मेवेन-कान-प्लगइन का उपयोग करता है।

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