2012-11-11 8 views
10

Qualcuno potrebbe suggerirmi una soluzione con la seguente eccezione. Ho intenzione di creare un progetto multi-modulo.Imballaggio non valido per pom.xml padre, deve essere "pom" ma è "orecchio"

nome Parent Project è LOGICBACKEND bambino nome del progetto è DBAccess

ho bisogno di avere file ear di LOGICBACKEND che dovrebbe contenere DBAccess prjoects jar di file.

Ricevo un'eccezione successiva quando corro 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 

Questo è come parte della mia pom.xml genitore sembra

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

Questo è il modo pom.xml bambino guarda

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

Qualcuno mi potrebbe aiutare qui per capire cosa sta succedendo sbagliato qui

Grazie in anticipo per qualsiasi aiuto

+0

Il messaggio di errore è abbastanza chiaro. Un genitore deve avere pom pom confezione. – maba

+0

ma voglio che la confezione sia pronta, dovrebbe essere possibile – KItis

+0

Sì, è possibile ma non essendo un genitore. – maba

risposta

12

Questa semplice configurazione è un buon inizio.

 
. 
├── 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

Grazie per la tua risposta, posso sapere perché hai messo il plugin maven-ear per il genitore pom.xml – KItis

+0

Puoi metterlo in progetto dell'orecchio pure. In questo caso non ha molta importanza. – maba

7

Si sta cercando di dare ai genitori pom due funzioni - che serve come un pom genitore (imballaggio pom) ed essendo l'orecchio involucro (confezione ear) - allo stesso tempo . Per risolvere il tuo problema dovresti creare un altro modulo maven sotto il tuo genitore che abbia il packaging ear e usi il plugin maven-ear per definire l'output.