2012-11-11 10 views
10

Aşağıdaki istisna dışında bir çözüm önerebilir mi? Çok modüllü bir proje oluşturacağım.Ana pom.xml için geçersiz paketler, "pom" olmalı, ancak "kulak"

Veli Proje adı LOGICBACKEND çocuk proje adı ben DBAccess prjoects jar dosya içermelidir LOGICBACKEND kulak dosyasına ihtiyacınız DBAccess

olmasıdır.

mav clean install -P Developer çalıştırdığımda aşağıdaki istisnaları alıyorum.

[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 

Bu benim ana pom.xml parçası bu çocuk 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> 

herkes ne olup bittiğini anlamak için burada bana yardımcı olabilir böyle görünüyor

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

böyle görünüyor yanlış burada. Herhangi bir yardım için şimdiden

Teşekkür

+0

hata iletisi oldukça açık. Bir ebeveynin paketleme pompasına sahip olması gerekir. – maba

+0

ama ambalajın kulak olmasını istiyorum, bu mümkün olabilir – KItis

+0

Evet, ancak bir ebeveyn olmakla mümkün değil. – maba

cevap

12

Bu basit kurulum, iyi bir başlangıçtır.

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

Cevabınız için teşekkür ederiz, mayıs m.turkish.alibaba.com adresinde bulunan maven-ear-plugin ürününü neden yazdığınızı öğrenebilir miyim – KItis

+0

kulak projesi de. Bu durumda gerçekten önemli değil. – maba

7

Sen ebeveyn pom iki işlevi vermeye çalışıyoruz - yani bir ebeveyn pom (ambalaj pom) olarak görev yapmaktadır ve sarıcı kulak (ambalaj ear) olmak - Aynı anda . Sorununuzu çözmek için, ear numaralı ambalajı olan ve pompayı kullanarak maven-kulak-eklentisini kullanan bir başka maven modülü oluşturmalısınız.

İlgili konular