2012-11-11 24 views
10

次の例外を除いて誰かが私に解決策を提案できますか?マルチモジュールプロジェクトを作成します。親pom.xmlのパッケージが無効です。 "pom"でなく "ear"である必要があります。

親プロジェクト名はLOGICBACKEND 子プロジェクト名は、私がDBAccess prjoects jarファイルが含まれている必要がありLOGICBACKENDの耳のファイルを持っている必要がありDBAccess

です。

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の一部は、この子の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> 

は、誰もが何が起こっているかを理解するために、ここで私を助けてもらえどのように見えるかです

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

どのように見えるかですここで間違っている。任意の助けを事前に

おかげ

+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のmaven-ear-pluginを入れた理由を知りました – KItis

+0

あなたは耳のプロジェクトも同様です。この場合、それは本当に重要ではありません。 – maba

7

あなたは親ポンポンの二つの機能を与えるためにしようとしている - それは、親のポンポン(梱包pom)として機能しているのとラッパー耳(梱包ear)であること - を同時に。あなたの問題を解決するには、パッケージearを持つ親pomの下に別のmavenモジュールを作成し、maven-ear-pluginを使用して出力を定義する必要があります。

関連する問題