Maven EAR mittels Maven erzeugen

y0dA

Top Contributor
Hallo!

Könnte mich jemand unterstützen wie ich ein EAR mittels Maven bauen kann. Aktuell scheitert es bei der korrekten Definition der einzelnen .pom Dateien (bei Bedarf kann ich selbige auch posten).

Projektstruktur:
Domain
ServiceClient (Dependency zu Domain)
Service (Dependency zu Domain und ServiceClient)
Web (eigentlich Dependencies zu Domain,ServiceClient sowie Service jedoch sollten bei der EAR Erstellung die Libs nicht im WAR
liegen)
Ear

Dann habe ich noch ein Parent Pom:
Java:
..
	<modelVersion>4.0.0</modelVersion>
	<groupId>at.xx.yy.zz</groupId>
	<artifactId>Parent</artifactId>
 	 <version>0.6</version>
  	<packaging>pom</packaging>
	   <name>ZWR Parent</name>  
  
	<modules>
		<module>../Domain</module>
		<module>../ServiceClient</module>
		<module>../Service</module>
		<module>../Web</module>
		<!-- <module>../Ear</module>  -->
	</modules>
...

Könnte mir jemand verraten wie ich die einzelnen Dependencies anzugeben habe (darf ich überhaupt bei Service und ServiceClient selbige angeben)?
Wenn ich das EAR erzeuge wird bei mir im lokalen Repository nach einem Web.jar gesucht anstatt einem Web.war etc.
Also ich kann alle Projekte einzeln erzeugen sowie ein WAR nur das EAR klappt nicht.

**EDIT**
Aktuell sieht mein Pom fürs EAR so aus (sicher viel zu wenig angegeben 😀):
Java:
<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">
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>0.6</version>
		<relativePath>./../Parent/pom.xml</relativePath>
	</parent>
  
  	<modelVersion>4.0.0</modelVersion>
	<artifactId>Ear</artifactId>
	<packaging>ear</packaging>	
	<name>Enterprise Archive Projekt</name>
	
	<dependencies>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Web</artifactId>
			<version>0.6</version>
			<type>war</type>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
	</dependencies>

</project>

Hierbei wird dann natürlich auch ein EAR erzeugt aber nicht so wie gebraucht:
Inhalt beim erzeugten EAR:
META-INF
log4j-1.2.16.jar
Web-0.6.war

Sollte sein:
target
META-INF
lib (beinhalt u.a. auch ServiceClient.jar,Domain.jar)
Service.jar (EJB Projekt)
Web.war
pom.xml
 
Zuletzt bearbeitet:
Hi,

hier schon mal vorbei geschaut:

Maven Ear plugin - Introduction

EDIT: Was mir komisch vorkommt, dass deine modules mit einem relativen Pfade "../" angegeben sind...liegt der Parent nicht Verzeichnistechnisch über den modulen?
EDIT: Was mir auch sehr komisch vorkommt ist, dass Du anscheinend keine -SNAPSHOT versionen verwendest...überall stehen "0.6" anstatt "0.6-SNAPSHOT" ?

Gruß
Karl Heinz Marbaise
 
Zuletzt bearbeitet:
Ich habe folgendes als "Template"

Code:
|-  pom.xml [parent.pom]
|-  ear
|     |-  pom.xml [ear.pom]
       `- src/main/application/META-INF/application.xml
|-  ejb
      |-  pom.xml [ejb.pom]
       `- src/...
 `- war
      |-  pom.xml [war.pom]
       `- src/...

parent.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>de.mvitz</groupId>
<artifactId>javaee</artifactId>

<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
<module>ejb</module>
<module>war</module>
<module>ear</module>
</modules>

<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>

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

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

</project>[/XML]
ear.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>de.mvitz</groupId>
<artifactId>javaee</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>de.mvitz</groupId>
<artifactId>javaee.ear</artifactId>

<version>0.0.1-SNAPSHOT</version>
<packaging>ear</packaging>

<dependencies>
<dependency>
<groupId>de.mvitz</groupId>
<artifactId>javaee.war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>de.mvitz</groupId>
<artifactId>javaee.ejb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4.2</version>
</plugin>
</plugins>
</build>

</project>[/XML]
ejb.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>de.mvitz</groupId>
<artifactId>javaee</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>de.mvitz</groupId>
<artifactId>javaee.ejb</artifactId>

<version>0.0.1-SNAPSHOT</version>
<packaging>ejb</packaging>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
<generateClient>true</generateClient>
</configuration>
</plugin>
</plugins>
</build>

</project>[/XML]
war.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>de.mvitz</groupId>
<artifactId>javaee</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>de.mvitz</groupId>
<artifactId>javaee.war</artifactId>

<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
<dependency>
<groupId>de.mvitz</groupId>
<artifactId>javaee.ejb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>ejb-client</type>
</dependency>
</dependencies>

</project>[/XML]

Evtl. hilft dir das ja.
 
Hi,

hier schon mal vorbei geschaut:

Maven Ear plugin - Introduction

EDIT: Was mir komisch vorkommt, dass deine modules mit einem relativen Pfade "../" angegeben sind...liegt der Parent nicht Verzeichnistechnisch über den modulen?
EDIT: Was mir auch sehr komisch vorkommt ist, dass Du anscheinend keine -SNAPSHOT versionen verwendest...überall stehen "0.6" anstatt "0.6-SNAPSHOT" ?

Gruß
Karl Heinz Marbaise

Danke für die Antwort.
relative Pfade deshalb weil der Parent Pom in einem eigenen Projekt liegt. Bezüglich der Versionierung, ist es denn notwendig "-SNAPSHOT" hinzuzufügen?


@mvitz Für selbige Variante, also nur EAR, Web und EJB, habe ich auch schon eine andere Anleitung, eben auf der Maven Seite, gefunden. In meinem Fall gibt es aber mehr Projekte und mehr Abhängigkeiten untereinander.
 
Hi,

parent.pom
[XML]<project
<modules>
<module>ejb</module>
<module>war</module>
<module>ear</module>
</modules>
..
</project>[/XML]
So ist das Ok...Ich hatte mich nur über die Einträge <module>../xyz</module> in dem ursprungs post gewundert....

[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>de.mvitz</groupId>
<artifactId>javaee</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>de.mvitz</groupId>
<artifactId>javaee.ear</artifactId>
<version>0.0.1-SNAPSHOT</version>
[/XML]
Hier auf keinen fall die Version hinschreiben.... sondern wie folgt:

[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>de.mvitz</groupId>
<artifactId>javaee</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>de.mvitz</groupId>
<artifactId>javaee.ear</artifactId>

[/XML]


und bei dependencies innerhalb eines Multi-Module Builds:

[XML]
<dependencies>
<dependency>
<groupId>de.mvitz</groupId>
<artifactId>javaee.war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
[/xml]
sondern:
[XML]
<dependencies>
<dependency>
<groupId>de.mvitz</groupId>
<artifactId>javaee.war</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
[/xml]
Wenn die groupId auch noch identisch ist kann man das auch per ${project.groupId} nutzen....

Ich empfehle noch zur weiteren Vertiefung:
Books | Sonatype
Dort z.B. Maven by Example, oder "Maven: Complete Reference" etc.

Zum Thema Version: 0.6-SNAPSHOT bedeutet in Maven, dass daran gerade entwickelt wird. Eine Verison 0.6 bedeutet, dass das eine released Version ist. Somit käme hier sinnvollerweise 0.6-SNAPSHOT in Betracht...

Gruß
Karl Heinz Marbaise
 
...

@mvitz Für selbige Variante, also nur EAR, Web und EJB, habe ich auch schon eine andere Anleitung, eben auf der Maven Seite, gefunden. In meinem Fall gibt es aber mehr Projekte und mehr Abhängigkeiten untereinander.

Naja, dann hat man halt mehrere ejb1, ejb2, ejb3 Subprojekte und trägt dann in dem War Projekt einfach noch die zusätzlichen Abhängigkeiten ein.
 
Naja, dann hat man halt mehrere ejb1, ejb2, ejb3 Subprojekte und trägt dann in dem War Projekt einfach noch die zusätzlichen Abhängigkeiten ein.

Diese Subprojekte sind aber keine EJB Projekte sondern bspw. das Domain Projekt wo nur Pojos drinnen stehen.

**EDIT**
Ich poste nun mal die Struktur und wie die POM Files aussehen.

Struktur:
Code:
|-  parent
      |- pom.xml [parent.pom]
|-  ear
|     |-  pom.xml [ear.pom]
       - META-INF/application.xml
|-  service (ejb projekt)
      |-  pom.xml [ejb.pom]
       `- src/...
|-  war
      |-  pom.xml [war.pom]
       `- src/...
|-  domain
      |-  pom.xml [war.pom]
       `- src/...
|-  serviceclient (beinhaltet nur die Interfaces zu Service - Struktur nicht von mir definiert..)
      |-  pom.xml [war.pom]
       `- src/...

parent pom:
Java:
	<modelVersion>4.0.0</modelVersion>
	<groupId>at.xx.yy</groupId>
	<artifactId>RParent</artifactId>
 	<version>0.0.1-SNAPSHOT</version>
  	<packaging>pom</packaging>
	 <name>Parent</name>  
  
	<modules>
		<module>../Domain</module>
		<module>../ServiceClient</module>
		<module>../Service</module>
		<module>../Web</module>
		<module>../Ear</module>
	</modules>

  <properties>
    <src>src</src>
 		<target.junit>${target}/test-classes</target.junit>
		<target.install>${target}/install</target.install>
		<target.jar>${target}/jar</target.jar>
		<target.javadoc>${target}/javadoc</target.javadoc>
		<target>target</target>
		<src.java>${src}/main/java</src.java>
		<src.junit>${src}/test/java</src.junit>
		<target.testreports>
			${target}/surefire-reports
		</target.testreports>
		<doc>doc</doc>
		<target.java>${target}/classes</target.java>
   		<ejb.version>3.0</ejb.version>
		<hibernate.core.version>3.5.3-Final</hibernate.core.version>
   		 <log4j.version>1.2.16</log4j.version>
		<junit.version>4.8.1</junit.version>
	</properties>

	<finalName>${project.artifactId}</finalName>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<verbose>true</verbose>
					<compilerVersion>1.6</compilerVersion>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<testFailureIgnore>false</testFailureIgnore>
					<excludes>
						<exclude>**/*Base*.java</exclude>
					</excludes>
					<forkMode>once</forkMode>
				</configuration>
			</plugin>
		</plugins>
		
	</build>

ear pom:
Java:
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>>0.0.1-SNAPSHOT</version>
		<relativePath>./../Parent/pom.xml</relativePath>
	</parent>
  
  	<modelVersion>4.0.0</modelVersion>
	<artifactId>Ear</artifactId>
	<packaging>ear</packaging>
	<name>Enterprise Archive Projekt</name>
	
	<dependencies>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Web</artifactId>
			<version>>0.0.1-SNAPSHOT</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Service</artifactId>
			<version>>0.0.1-SNAPSHOT</version>
			<type>ejb</type>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
	</dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.4.2</version>
      </plugin>
    </plugins>
  </build>

service pom:
Java:
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>./../Parent/pom.xml</relativePath>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<artifactId>Service</artifactId>
	<packaging>ejb</packaging>
	<name>Service Projekt</name>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-ejb-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<ejbVersion>3.0</ejbVersion>
					<generateClient>true</generateClient>
				</configuration>
			</plugin>
		</plugins>
	</build>

	 <dependencies>		
	<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Domain</artifactId>
			<version>>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency> 
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>ServiceClient</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.openjpa</groupId>
			<artifactId>openjpa</artifactId>
			<version>1.2.2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.ejb</groupId>
			<artifactId>ejb-api</artifactId>
			<version>${ejb.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
      		<groupId>com.bm</groupId>
	      	<artifactId>ejb3unit</artifactId>
	      	<version>2.0.0-RC-1</version>
	    </dependency>
        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>openejb-core</artifactId>
            <version>3.1</version>
            <scope>test</scope>
        </dependency>
		<dependency>
		  <groupId>com.ibm.db2.jcc</groupId> 
		  <artifactId>db2jcc</artifactId> 
		  <version>1.3.1</version> 
		  <scope>test</scope> 
		</dependency>
		<dependency>
		  <groupId>com.ibm.db2.jcc</groupId> 
		  <artifactId>db2jcc_license_cisuz</artifactId> 
		  <version>1.3.1</version> 
		  <scope>test</scope> 
		</dependency>
	</dependencies>

war pom:
Java:
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>./../Parent/pom.xml</relativePath>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<artifactId>Web</artifactId>
	<packaging>war</packaging>
	<name>Web Projekt</name>
	
	<dependencies>	
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Domain</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>ServiceClient</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Service</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>	

		<dependency>
			<groupId>javax.ejb</groupId>
			<artifactId>ejb-api</artifactId>
			<version>${ejb.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
	      <groupId>javax.servlet</groupId>
	      <artifactId>servlet-api</artifactId>
	      <version>2.5</version>
	    </dependency>
	    <dependency>
	    	<groupId>javax.el</groupId>
	    	<artifactId>el-api</artifactId>
	    	<version>1.0</version>
	    </dependency>
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>jsf-api</artifactId>
			<version>1.2_14</version>
		</dependency>
		<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      <scope>provided</scope>
    </dependency>
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>jsf-impl</artifactId>
			<version>1.2_14</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.sun.facelets</groupId>
			<artifactId>jsf-facelets</artifactId>
			<version>1.1.14</version>
		</dependency>
		<dependency>
			<groupId>org.richfaces.ui</groupId>
			<artifactId>richfaces-ui</artifactId>
			<version>3.3.3.Final</version>
		</dependency>
		<dependency>
			<groupId>org.richfaces.framework</groupId>
			<artifactId>richfaces-api</artifactId>
			<version>3.3.3.Final</version>
		</dependency>
		<dependency>
			<groupId>org.richfaces.framework</groupId>
			<artifactId>richfaces-impl</artifactId>
			<version>3.3.3.Final</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>	
	</dependencies>
	<build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory>
    <resources>
      <resource>
        <directory>${basedir}/src/main/java</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webappDirectory>${basedir}/WebContent</webappDirectory>
          <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

domain pom:
Java:
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>./../Parent/pom.xml</relativePath>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<artifactId>Domain</artifactId>
	<packaging>jar</packaging>
	<name>Domain Projekt</name>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>org.hibernate</groupId>
		    <artifactId>hibernate-core</artifactId>
		    <version>3.5.5-Final</version>
   		</dependency>
		<dependency>
		    <groupId>org.hibernate</groupId>
		    <artifactId>hibernate-validator</artifactId>
		    <version>4.1.0.Final</version>
   		</dependency>
		<dependency>
	      <groupId>org.slf4j</groupId>
	      <artifactId>slf4j-log4j12</artifactId>
	      <version>1.5.6</version>
	    </dependency>
    	<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
		<dependency>
	      <groupId>net.sf.jasperreports</groupId>
	      <artifactId>jasperreports</artifactId>
	      <version>3.7.6</version>
	    </dependency>
		<dependency>
	      <groupId>groovy</groupId>
	      <artifactId>groovy-all</artifactId>
	      <version>1.7.2</version>
	    </dependency>
	</dependencies>

serviceclient pom:
Java:
	<parent>
		<groupId>at.xx.yy</groupId>
		<artifactId>Parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>./../ZWRParent/pom.xml</relativePath>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<artifactId>ServiceClient</artifactId>
	<name>Service Client</name>
	<description>beinhaltet die Schnittstellen zu dem ProjektService</description>

	<dependencies>
		<dependency>
			<groupId>at.xx.yy</groupId>
			<artifactId>Domain</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
 
Zuletzt bearbeitet:
Hi,

mein erster Vorschlag wäre den Parent an eine andere Position zu legen. Nicht so
Code:
|-  parent
      |- pom.xml [parent.pom]
|-  ear
|     |-  pom.xml [ear.pom]
       - META-INF/application.xml
|-  service (ejb projekt)
      |-  pom.xml [ejb.pom]
       `- src/...
|-  war
      |-  pom.xml [war.pom]
       `- src/...
|-  domain
      |-  pom.xml [war.pom]
       `- src/...
|-  serviceclient (beinhaltet nur die Interfaces zu Service - Struktur nicht von mir definiert..)
      |-  pom.xml [war.pom]
       `- src/...

sondern so: Damit vereinfachen sich einige definitionen:
Code:
pom.xml [parent.pom]
|-  ear
|     |-  pom.xml [ear.pom]
       - META-INF/application.xml
|-  service (ejb projekt)
      |-  pom.xml [ejb.pom]
       `- src/...
|-  war
      |-  pom.xml [war.pom]
       `- src/...
|-  domain
      |-  pom.xml [war.pom]
       `- src/...
|-  serviceclient (beinhaltet nur die Interfaces zu Service - Struktur nicht von mir definiert..)
      |-  pom.xml [war.pom]
       `- src/...

Weiterhin fällt mir auf, dass die Property definitionen im parent:
[xml]
<properties>
<src>src</src>
<target.junit>${target}/test-classes</target.junit>
<target.install>${target}/install</target.install>
<target.jar>${target}/jar</target.jar>
<target.javadoc>${target}/javadoc</target.javadoc>
<target>target</target>
<src.java>${src}/main/java</src.java>
<src.junit>${src}/test/java</src.junit>
<target.testreports>
${target}/surefire-reports
</target.testreports>
<doc>doc</doc>
<target.java>${target}/classes</target.java>
<subversion.url>https://zsvn.brz.gv.at/svn/zwr</subversion.url>
</properties>
[/xml]
Wofür werden die gebraucht? Vor allem so sachen wie <src.java> etc. ?
Zugriffe auf das Target Verzeichnis mach man per: ${project.build.outputDirectory} etc. siehe auch hier

Im folgenden werden Dinge definiert die in Maven Default sind...Somit nicht nötig...
Aber warum das outputDirectory umdefiniert wird ist mir nicht klar!!!! Bitte prüfen!!!!

[xml] <build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${basedir}/WebContent</webappDirectory>
<warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
</configuration>
</plugin>
[/xml]
Resources gehören nach src/main/resources bzw. WebResources src/main/webapp/XXX/? (in der doku zum maven-war-plugin nachschauen).

Gruß
Karl Heinz Marbaise
 
Du meinst im War Projekt folgendes entfernen?
[xml]
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${basedir}/WebContent</webappDirectory>
<warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
[/xml]

Das Parent Pom ist aus dem Grund in einen eigenem Projekt weil ich sonst in den poms immer einen Fehler bekomme dass die parent pom nicht gefunden werden kann - aber wenn es zum Ziel führt mache ich das gerne wieder rückgängig.

Die property Definitionen im parent pom sind historisch sprich kann ich rausnehmen.
 
Ansonsten habe ich gerade mal ein Projekt erstellt, das so ungefähr deinem Layout entspricht (nur, dass ich jetzt auf die ganzen externen Dependencies verzichtet habe).

Es besteht aus domain, service, service-client, webgui und app [ear]. Und funktioniert bei mir auf glassfish v3.1

java-library-examples - Revision 85: /trunk/javaee

Evtl. hilft dir das ja auch noch, auch wenn kama sicherlich mehr Ahnung von Maven hat als ich.
 
Also wenn ich
[xml]
<outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory>
[/xml]
aus der war pom entferne dann kann ich gar nicht mehr builden, bekomme dann folgenden Fehler:
Code:
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] \Entwicklung\XX\workspace\Web\src\main\java\at\xx\yy\w\UebersichtBean.java:[92,46] type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object
[ERROR] \Entwicklung\XX\workspace\Web\src\main\java\at\xx\yy\web\w\UebersichtBean.java:[95,42] type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.031s
[INFO] Finished at: Wed Mar 30 14:54:45 CEST 2011
[INFO] Final Memory: 13M/20M

**EDIT**
Konnte nun erstmals ein EAR erzeugen und habe selbiges gleich mal am Websphere getestet, mit dem Ergebnis dass ich folgenden Fehler bekomme:
Code:
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R com.ibm.ws.exception.RuntimeWarning: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: Failed to process xml from Deployment Descriptor
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:382)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:668)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1122)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1319)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:609)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:944)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:725)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl$1.run(ApplicationMgrImpl.java:1266)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:4520)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:4698)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1271)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2043)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:439)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:382)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:653)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:615)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1177)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at java.lang.reflect.Method.invoke(Method.java:600)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at java.lang.reflect.Method.invoke(Method.java:600)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1086)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:967)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
[30/03/11 15:26:35:062 CEST] 00000019 SystemErr     R 	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1332)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1225)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.management.commands.AdminServiceCommands$InvokeCmd.execute(AdminServiceCommands.java:251)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:239)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.execute(ApplicationDeploymentCollectionAction.java:564)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.RequestProcessor.processActionPerform(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.RequestProcessor.process(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.ActionServlet.process(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.ActionServlet.doPost(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:341)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.RequestProcessor.doForward(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.tiles.TilesRequestProcessor.doForward(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.RequestProcessor.processForwardConfig(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.isclite.container.controller.InformationController.processForwardConfig(InformationController.java:217)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.RequestProcessor.process(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.ActionServlet.process(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at org.apache.struts.action.ActionServlet.doPost(Unknown Source)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.console.core.servlet.WSCUrlFilter.setUpCommandAssistence(WSCUrlFilter.java:933)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoringTaskState(WSCUrlFilter.java:500)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:321)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
[30/03/11 15:26:35:078 CEST] 00000019 SystemErr     R Caused by: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: Failed to process xml from Deployment Descriptor

Wenn ich mir das EAR so ansehe fällt mir folgendes auf:
-) es gibt keinen lib Ordner sondern die JARs werden einfach so ins EAR gelegt (beim EAR von Eclipse gibt es selbigen)
-) es sind weniger libs im EAR Ordner als wenn Eclipse das EAR erzeugt (sicher net verkehrt, denke dass myEclipse wahrscheinlich mehr reinpackt als es müsste)
-) das MANIFEST.MF unter META-INF sieht anders aus, entspricht nicht jenem im Projekt.
Ist:
[xml]
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: myname
Build-Jdk: 1.6.0
[/xml]

Sollte:
[xml]
Manifest-Version: 1.0
Class-Path: domain.jar serviceclient.jar
[/xml]

Auch die application.xml unter META-INF ist nicht die richtige:
Ist:
[xml]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE application (View Source for full doctype...)>
<application>
<display-name>Ear</display-name>
<module>
<web>
<web-uri>Web-0.0.1-SNAPSHOT.war</web-uri>
<context-root>/Web</context-root>
</web>
</module>
</application>
[/xml]

Sollte:
[xml]
<?xml version="1.0" encoding="UTF-8" ?>
- <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
<description>xx</description>
<display-name>Ear</display-name>
<icon />
<module id="myeclipse.1282050526281">
<web>
<web-uri>Web.war</web-uri>
<context-root>/Web</context-root>
</web>
</module>
<module id="myeclipse.1282235191453">
<ejb>Service.jar</ejb>
</module>
<library-directory>lib/</library-directory>
</application>
[/xml]

Auch noch zu erwähnen wäre dass ich bisher das EAR mittels mvn install (über Eclipse) erstellt habe.
 
Zuletzt bearbeitet:
Hi,

[xml]
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${basedir}/WebContent</webappDirectory>
<warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
[/xml]
Es sollte so aussehen:

[xml]
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
[/xml]

Gruß
Karl Heinz Marbaise
 
Hi,

Wenn ich mir das EAR so ansehe fällt mir folgendes auf:
-) es gibt keinen lib Ordner sondern die JARs werden einfach so ins EAR gelegt (beim EAR von Eclipse gibt es selbigen)
-) es sind weniger libs im EAR Ordner als wenn Eclipse das EAR erzeugt (sicher net verkehrt, denke dass myEclipse wahrscheinlich mehr reinpackt als es müsste)
-) das MANIFEST.MF unter META-INF sieht anders aus, entspricht nicht jenem im Projekt.
Ist:
Sollte:
[xml]
Manifest-Version: 1.0
Class-Path: domain.jar serviceclient.jar
[/xml]
Um die Sachen so zu bekommen solltest Du Dir die Doku zum maven-ear-plugin anschauen...Wichtig ist auch, dass Du die aktuelle Version 2.5 von maven-ear-plugin verwendest und nicht eine veraltet (2.4?)...
Beim MANIFEST.MF ist das maven-jar-plugin die richtige Adresse..(kann man eben auch anpassen..)...


Gruß
Karl Heinz Marbiase
 

Zurück
Oben