Maven Java Web-Application in Eclipse - Abhängigkeiten zwischen den Projekten

HaukeG

Mitglied
Hallo zusammen und ein frohes neues Jahr,

ich habe ein kleines Problem. Ich habe mit Maven ein Web-Application Project aufgesetzt.

Da das Projekt aus einem Client (WAR) und Server (JAR) Teil besteht, beide in ein EAR gepackt werden müssen, brauche ich ja mindestens 3 pom files (also auch 3 Projekte). Außerdem habe ich noch eine 4. pom (main). Dieses ist aber kein eigentliches Projekt, sondern mehr eine Pom die als Modules das war, jar und ear Projekt beinhalten.

Soweit funktioniert das auch alles super.

Nun habe ich aber folgendes Problem. Wenn ich vom Client-Projekt auf Klassen vom Server-Projekt zugreifen möchte, muss in Eclipse das Server-Projekt im Client Build-Path/Projects eingetragen werden. Wenn ich das manuell mache, habe ich keine Fehler mehr in Eclipse.
Maven baut das Projekt auch richtig, aber immer wenn ich mal ein Maven-Clean machen muss, oder das Projekt auf einem anderen Rechner einrichten will, muss ich das Server Project im Build Path mit eintragen.

Wenn ich das Projekt mit Intelli J einbinde, habe ich das gleiche Problem. Leider weiß ich noch nicht einmal, wie man das in Intelli J manuell hinzufügt.

Bei Bedarf kann ich auch die Poms mal mit posten, aber evt kann mir das so schon jemand sagen wo das Problem sein könnte.

Vielen Dank für Tipps,
Viele Grüße,
Hauke
 

mvitz

Top Contributor
POMs wären sicherlich hilfreich. Hat dein Client (WAR) denn eine Abhängigkeit in seiner POM auf den Server (JAR)?
 

kama

Top Contributor
Ja wie schon bemerkt bitte die Struktur plus die POM's posten...

Das hört sich so an, als ob Du die Abhängigkeiten nicht richtig gemacht hast...aber OHNE pom's ist das nur stochern im Nebel...
Gruß
Karl Heinz Marbaise
 

HaukeG

Mitglied
Hi,

dachte ich mir schon. Ich habe die Poms mal auf das notwendige reduziert. Ich hoffe das ist nicht zu unübersichtlich


main.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.hauke</groupId>
<artifactId>main</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>main</name>
<url>http://maven.apache.org</url>

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

<modules>
<module>../client</module>
<module>../server</module>
<module>../ear</module>
</modules>

<repositories>
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-web-6.0</artifactId>
<version>2.0.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<version>4.0.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

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

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

</project>
[/XML]


client.pom
[XML]<?xml version="1.0" encoding="UTF-8"?>
<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.hauke</groupId>
<artifactId>client</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<name>client</name>

<parent>
<groupId>de.hauke</groupId>
<artifactId>main</artifactId>
<version>1.0.0</version>
<relativePath>../main</relativePath>
</parent>

<repositories>
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-web-6.0</artifactId>
<version>2.0.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<version>4.0.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-impl</artifactId>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>

<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>jee6</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
<classifier>jee6</classifier>
<packagingExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jta-*</packagingExcludes>
<warSourceExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jta-*</warSourceExcludes>
</configuration>
</execution>
</executions>
<configuration>
<classifier>tomcat6</classifier>
</configuration>
</plugin>

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>group-sources</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<finalName>sources</finalName>
<descriptor>assembler.xml</descriptor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<!-- TODO - basedir might have a problem with release realitive path might be better to use ${project.build.directory} -->
<classesDirectory>${basedir}/target/sources/sources</classesDirectory>
<classifier>sources</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>


</build>
</profile>
<profile>
<id>jee6</id>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- TODO these should be switchable in example specific parent -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>

<scm>
<connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/core-demo</connection>
<developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/core-demo</developerConnection>
<url>http://fisheye.jboss.org/browse/richfaces</url>
</scm>
</project>[/XML]


server.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.hauke</groupId>
<artifactId>server</artifactId>
<version>1.0.0</version>
<packaging>ejb</packaging>
<name>server</name>

<parent>
<groupId>de.hauke</groupId>
<artifactId>main</artifactId>
<version>1.0.0</version>
<relativePath>../main</relativePath>
</parent>

<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>

<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>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
</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>

<groupId>de.hauke</groupId>
<artifactId>ear</artifactId>
<version>1.0.0</version>
<packaging>ear</packaging>

<name>ear</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<deployPath>file:///c:\tmp\deloy\</deployPath>
</properties>

<parent>
<groupId>de.hauke</groupId>
<artifactId>main</artifactId>
<version>1.0.0</version>
<relativePath>../main</relativePath>
</parent>

<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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<modules>
<webModule>
<groupId>de.hauke</groupId>
<artifactId>client</artifactId>
</webModule>
<ejbModule>
<groupId>de.hauke</groupId>
<artifactId>server</artifactId>
</ejbModule>
</modules>
<version>6</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<id>upload</id>
<phase>install</phase>
<goals>
<goal>upload</goal>
</goals>
<configuration>
<fromDir>target</fromDir>
<includes>*.ear</includes>
<url>${deployPath}</url>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>de.hauke</groupId>
<artifactId>client</artifactId>
<version>1.0.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>de.hauke</groupId>
<artifactId>server</artifactId>
<version>1.0.0</version>
<type>ejb</type>
</dependency>
</dependencies>

</project>
[/XML]

Vielen Dank,
Hauke
 

kama

Top Contributor
Hi,

also wenn ich mir das mal so anschauen dann fallen mir Grundsätzlich einmal folgenden Dinge dazu ein:

Deine Struktur ist FALSCH! (Nein eigentlich ist die Struktur des Archetypes das Problem..!!).

Wie folgt solch ein Projekt aussehen:

Code:
   +
   +--- pom.xml (main; modules)
   +--- ear-module
             +--- pom.xml (ear)
   +--- ejb-module
             +--- pom.xml (ejb)
   +--- war-module
             +--- pom.xml (war)

Weiterhin wundere ich mich warum Du keine "SNAPSHOT" versionen nutzt ?

Ich nehme jetzt exemplarisch das ...EAR module zur Hand...

Code:
<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.hauke</groupId>
    <artifactId>ear</artifactId>
    <version>1.0.0</version>
    <packaging>ear</packaging>
 
    <name>ear</name>
 
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <deployPath>file:///c:\tmp\deloy\</deployPath>
    </properties>
 
    <parent>
        <groupId>de.hauke</groupId>
        <artifactId>main</artifactId>
        <version>1.0.0</version>
        <relativePath>../main</relativePath>
    </parent>
das sollte besser so aussehen:

Code:
<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.hauke</groupId>
        <artifactId>main</artifactId>
        <version>1.0.0</version>
        <relativePath>../main</relativePath>
    </parent>
 
    <artifactId>ear</artifactId>
    <packaging>ear</packaging>
 
    <name>ear</name>
 
....
Abgesehen davon, dass der "relativePath" nicht vorhanden sein sollte...und keine SNAPSHOT Version vorliegt...


Weiterhin Frage ich mich, wo Du das hier (im EJB) Module her hast...(Ich vermute aus einem Archetype erzeugt!):

Code:
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
Das ist schlicht Käse...

Weiterhin ist es Best-Practice niemals Repositories in einer POM zu definieren:
Code:
 <repositories>
        <repository>
            <id>jboss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>
    </repositories>
Dafür gibt es Repository Manager (Nexus, Artifactory, Archive...)

Als Anhaltspunkt wie es sauberer geht...https://github.com/khmarbaise/javaee (Das geht auch noch besser!)...

Das Deployment sollte nicht mit dem Wagon-Plugin gemacht werden sondern eventuell mit dem cargo2 plugin ...(wenn schon!)...oder Besser über die IDE während der Entwicklung (JBoos Tools installieren und m2e!)...

Gruß
Karl Heinz Marbaise
 

HaukeG

Mitglied
Hi

Super viele dank für deine Hilfe. Ich werde mit das heute Mittag einmal ansehen.
Das Problem bei dem Projekt ist/war das ich nirgends komplette Beispiele oder gute Informationen gefunden habe. Leider immer nur sO Fragmente und war echt froh als es dann endlich mal funktioniert hatte.

Das mit den jboss tools hatte ich schon probiert aber ich glaube da fehlte zu dem Zeitpunkt der jboss 7 Support. Zumindest funktionierte da etwas überhaupt nicht. Werde es aber nocheinmal versuchen nd melde mich dann!

Vielen dank
Hauke gulich
 

HaukeG

Mitglied
Hi,

so, ich habe mal ein wenig rum probiert und das so umgebaut wie in deinem Projekt. Danke erstmal für die Vorlage :)


Leider habe ich jetzt ein paar Fragen & Problem:


Problem

[ERROR] The project de.hauke:client:1.0.0-SNAPSHOT (C:\dev\workspace_indigo\schwimmbad\project\client\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find de.hauke:main:pom:1.0.0-SNAPSHOT in https://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 7, column 10 -> [Help 2]
[ERROR]
[ERROR] The project de.hauke:server:1.0.0-SNAPSHOT (C:\dev\workspace_indigo\schwimmbad\project\server\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find de.hauke:main:pom:1.0.0-SNAPSHOT in https://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2]
[ERROR]
[ERROR] The project de.hauke:ear:1.0.0-SNAPSHOT (C:\dev\workspace_indigo\schwimmbad\project\ear\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find de.hauke:main:pom:1.0.0-SNAPSHOT in https://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2]
[ERROR]


Ich habe mal in meinem Pom Dateien danach gesucht und dort stand ja immer:

[XML]<repositories>
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>
[/XML]

Außerdem steht in meiner settings.xml auch folgendes drin

[XML]<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0">
<!-- location of your local library folder -->
<localRepository>C:\dev\m2\repository</localRepository>
<profiles>
<profile>
<id>jsf-app-profile</id>
<repositories>
<repository>
<id>hauke-repo</id>
<name>Haukes Repository Server</name>
<url>http://mavenrepo.tuxland.net</url>
<layout>default</layout>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<id>snapshots.jboss.org</id>
<name>Snapshot Jboss Repository for Maven</name>
<url>http://snapshots.jboss.org/maven2/</url>
<layout>default</layout>
</repository>

<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<id>repository.jboss.com</id>
<name>Jboss Repository for Maven</name>
<url>http://repository.jboss.com/maven2/</url>
<layout>default</layout>
</repository>

</repositories>
</profile>
<profile>
<id>jboss-public-repository</id>
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

<mirrors>
<mirror>
<id>java.net.mirror</id>
<name>Java.net Mirror</name>
<url>http://download.java.net/maven/1/</url>
<mirrorOf>java.net</mirrorOf>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>default</activeProfile>
<activeProfile>jsf-app-profile</activeProfile>
<activeProfile>jboss-public-repository</activeProfile>
</activeProfiles>

<pluginGroups>
<pluginGroup>org.jboss.maven.plugins</pluginGroup>
</pluginGroups>

</settings>
[/XML]


  • Ist es denn richtig, dass man kein parentpath mehr angeben muss?


JBoss Tools
Ich habe mir auch die JBoss Tools installiert; Es gibt ja doch Support für JBoss 7.x
Ich habe im Reiter "Server" den JBoss hinzugefügt. Der Assistent hat mich gefragt welches Projekt er zum JBoss hinzufügen soll. Da habe ich das ear Projekt ausgewählt.
Nachdem ich den Server über Eclipse gestartet habe ist dieser auch hochgefahren. Danach habe ich auf Full-Publish gedrückt und er hat im JBoss kein EAR File angelegt, sondern ein EAR Verzeichnis und dort die ganzen Class-Dateien etc rein kopiert.
Im Prinzip finde ich das ja super, aber ich habe da immer einen Exception bekommen Invalide Loc Header Das war eine Zip-Exception oder so. Kann es sein, dass der JBoss 7.0.2 das nicht richtig unterstützt, wenn die Dateien dort "lose" rum liegen und nicht in einem EAR gepackt sind?
Das ist aber erstmal noch nicht so wichtig!



Nexus

Außerdem habe ich mir Nexus installiert (auf meinem Linux-Server). Leider verstehe ich den Sinn von Nexus noch nicht so ganz.
Wozu brauche ich denn Nexus genau?
- Damit ich von meinem Projekt jeweils nur auf ein Remote-Repository zugreifen brauche und nicht auf verschiedene gehen muss?
- Das ich dieses Repository dann in meine settings.xml eintrage um die ganze Konfiguration aus den pom Datein zu entfernen?

Aber die ganzen einzelnen Dependencies muss ich doch weiterhin in meiner pom.xml vom jeweiligen Projekt hinterlegen, oder?



Projektstruktur

Du hattest ja geschrieben

+
+--- pom.xml (main; modules)
+--- ear-module
+--- pom.xml (ear)
+--- ejb-module
+--- pom.xml (ejb)
+--- war-module
+--- pom.xml (war)

wäre richtig. Eigentlich ist das auch meine Struktur, oder nicht? Das Main-Projekt ist nur für die Build-Reihenfolge zuständig (welche Module sollen gebaut werden). Das EAR baut das EAR welches aus dem EJB und WAR Projekt besteht. So im Prinzip ist mein Projekt doch auch aufgebaut.

Das Projekt von Dir sieht ja prinzipiell ähnlich aus.


Vielen Dank für Deine super Hilfe. Ich hoffe du hast da ein wenig Geduld :)

Viele Grüße aus Bremen,
Hauke Gulich
 

kama

Top Contributor
Hallo,

Fehlermeldungen...
Die Fehlermeldungen sehen danach aus, dass Du noch eine ParentPath eingetragen hast oder aber die Version im Parent nicht mit dem richtigen Parent übereinstimmt....

Wenn Die Projektstruktur stimmt...

HaukeG hat gesagt.:
  • Ist es denn richtig, dass man kein parentpath mehr angeben muss?
Dann ist das richtig...

HaukeG hat gesagt.:
Nexus

Außerdem habe ich mir Nexus installiert (auf meinem Linux-Server). Leider verstehe ich den Sinn von Nexus noch nicht so ganz.
Wozu brauche ich denn Nexus genau?
- Damit ich von meinem Projekt jeweils nur auf ein Remote-Repository zugreifen brauche und nicht auf verschiedene gehen muss?
Macht das Ganze schon mal die Konfiguraion in der Settings.xml einfacher....


HaukeG hat gesagt.:
- Das ich dieses Repository dann in meine settings.xml eintrage um die ganze Konfiguration aus den pom Datein zu entfernen?
Das ist auf jeden fall richtig!

HaukeG hat gesagt.:
Aber die ganzen einzelnen Dependencies muss ich doch weiterhin in meiner pom.xml vom jeweiligen Projekt hinterlegen, oder?
Ja bleibt und muss selbstverständlich auch so bleiben...

Aber hier sind noch weitere Punkte:

Nexus fungiert als Proxy zwischen Dir bzw. Maven und dem Internet und den unterschiedlichen Repositories...somit ist hier die Konfiguration vereinfacht und funktioniert dann für alle...

Geschwindigkeit: Die Nutzung eines solchen Proxies beschleunigt Builds sowohl in der CI als auch lokale...

Und ein ganz Wichtiger Punkt: Du möchtest ja auch mal deine Applikation Releasen...das kannst Du dann im Nexus machen und für alle innerhalb der Firma zugänglich machen...Sprich ein Zentraler Zugriffspunkts...und eben auch mit Maven (Stichwort: Release Plugin!)...


HaukeG hat gesagt.:
..
wäre richtig. Eigentlich ist das auch meine Struktur, oder nicht? Das Main-Projekt ist nur für die Build-Reihenfolge zuständig (welche Module sollen gebaut werden). Das EAR baut das EAR welches aus dem EJB und WAR Projekt besteht. So im Prinzip ist mein Projekt doch auch aufgebaut.
Das Main Projekt (oder der Parent) ist nicht für die Reihenfolge zuständig. Das macht Maven selbst...Du gibst nur die Benötigten Module an. Die Reihenfolge bestimmt Maven selbstständig anhand der Abhängigkeiten...

Viel wichtiger ist aber, dass man in einer solchen Parent Pom auch noch Definitionen für das gesamte Projekt machen kann:

Plugin Versionen (Stichwort: pluginManagement), Dependency Versionen (Stichwort: dependencyManagement) etc.

Gruß
Karl Heinz Marbaise
 

HaukeG

Mitglied
Danke für Deine schnelle Antwort und Ausführungen.

Ich werde mir das wieder ansehen und mich melden, sobald ich wieder weiter gekommen bin :)

Viele Grüße,
Hauke
 

HaukeG

Mitglied
Hallo,

so, ich habe jetzt einmal Dein Projekt genommen und in Eclipse importiert mit Maven. Das funktioniert wunderbar.

Wenn ich das richtig verstehe

app = Mein ear Projekt
webgui = Mein War Projekt
service = Mein Server Projekt
parent = Mein Main Projekt

Was sind erstmal die Projekte service-client und domain?

Dann habe ich einmal die beiden Projekte service-client und domain entfernt (weil ich die aus meiner Sicht evt gar nicht brauche).

Als nächstes habe ich im service Projekt eine Klasse angelegt auf die ich vom webgui Projekt zugreifen wollte. Da kommt aber das gleiche Problem wie bei meiner vorherigen Struktur

(siehe Screenshots)

Habe ich hier mal wieder einen Denkfehler?



Ansonsten werde ich wohl Deine Struktur als Basis nehmen. Hast du schon einmal mit Richfaces gearbeitet? Wir haben die Repositories von JBoss mit in Nexus eingefügt aber irgendwie funktioniert das alles noch nicht richtig. Das ist aber das nächste Thema.


Vielen Dank,
Hauke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Maven NetBeans Java Application ohne Manifest-Datei Tools - Maven, Gradle, Ant & mehr 7
M Java Application startet bei verschiedenen JRE's nicht Tools - Maven, Gradle, Ant & mehr 7
U was braucht man um fuer eine Java-Server-Application? Tools - Maven, Gradle, Ant & mehr 6
M Von Java-Application zum Java-Applet Tools - Maven, Gradle, Ant & mehr 5
B Kleines Werkzeug zum Anzeigen von Mehrfachvererbung mit Interfaces in Java Tools - Maven, Gradle, Ant & mehr 5
D Java Programm veröffentlichen am Besten modular Tools - Maven, Gradle, Ant & mehr 28
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
Q Java Eclipse Fehlermeldung bei Installation Tools - Maven, Gradle, Ant & mehr 3
D Maven Abhängigkeiten überprüfen auf Kompatibilität mit einer anderen Java-Version Tools - Maven, Gradle, Ant & mehr 11
R Webstart Java 11 ohne Web Start Tools - Maven, Gradle, Ant & mehr 5
M Java mit Modulen kompilieren klappt nicht Tools - Maven, Gradle, Ant & mehr 9
R Java mitnehmen Tools - Maven, Gradle, Ant & mehr 14
W Java on Cloud - which Provider Tools - Maven, Gradle, Ant & mehr 0
S Python-Code mit Java ausführen Tools - Maven, Gradle, Ant & mehr 13
B Java auf Smartcards?! Tools - Maven, Gradle, Ant & mehr 9
J Java App im Mac Store veröffentlichen Tools - Maven, Gradle, Ant & mehr 0
M Maven (Java EE, WAR) Eigener Buildschritt - Manipulation von Dateien Tools - Maven, Gradle, Ant & mehr 4
VfL_Freak Desktopverknüpfung über den Java-Cache erstellen Tools - Maven, Gradle, Ant & mehr 0
S New version released: Java Switcher for 1.8.0_112 and Windows x64 only Tools - Maven, Gradle, Ant & mehr 4
S Java 32 Bit and 64 Bit Switcher for Windows XX [64 Bit only] Tools - Maven, Gradle, Ant & mehr 0
F java.lang.ClassNotFoundException auf anderem Rechner Tools - Maven, Gradle, Ant & mehr 0
S Applet Java Testen - Ergebnis wird nicht angezeigt, nur leeres Feld Tools - Maven, Gradle, Ant & mehr 15
T Java Applikation an Clients verteilen Tools - Maven, Gradle, Ant & mehr 5
S Java Web Start wird nicht ausgeführt Tools - Maven, Gradle, Ant & mehr 1
J Applet Java fragt Verzeichnis ab Tools - Maven, Gradle, Ant & mehr 0
J Applet .java.policy und neue Javaversion Tools - Maven, Gradle, Ant & mehr 4
R Maven woher gewusst, dass mein Java-Code commons-lang braucht? Tools - Maven, Gradle, Ant & mehr 0
O Applet Selbstsignierte Applets in Java 7 Update 51 Tools - Maven, Gradle, Ant & mehr 19
M Was muss man installiert haben damit Java Applets im Browser gehen Tools - Maven, Gradle, Ant & mehr 2
T ClassNotFound erfordert ständiges Löschen des Java-Cache. Tools - Maven, Gradle, Ant & mehr 2
P Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError) Tools - Maven, Gradle, Ant & mehr 3
B Webstart Java Webstart hängt sich beim Laden auf! Tools - Maven, Gradle, Ant & mehr 8
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
ChrisX Java im Autostart sinnvoll? Tools - Maven, Gradle, Ant & mehr 4
F [Java Webstart] Webspace gesucht... Tools - Maven, Gradle, Ant & mehr 6
B Wie kann man unter Windows 7 file types mit Java Applikationen verknüpfen? Tools - Maven, Gradle, Ant & mehr 5
D Java mit .bat starten Tools - Maven, Gradle, Ant & mehr 1
S Java Applikation als Windows Service einrichten Tools - Maven, Gradle, Ant & mehr 23
C Aufruf eines Java Programms mittels ant MIT Parametern Tools - Maven, Gradle, Ant & mehr 2
P Java Applikation auf Server Tools - Maven, Gradle, Ant & mehr 7
schlingel Applet Java-Sicherheitswarnung wegen alter JRE-Version Tools - Maven, Gradle, Ant & mehr 13
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
W CVS Keine Verbindung zu cvs.dev.java.net möglich Tools - Maven, Gradle, Ant & mehr 5
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
J Webstart Grenzen von Java Webstart? Tools - Maven, Gradle, Ant & mehr 2
B Buckminster: Plugin Version in Java source File einfügen Tools - Maven, Gradle, Ant & mehr 4
T Ant ant-variable aus Java Tools - Maven, Gradle, Ant & mehr 4
F Ant ANT javac class-Dateien von entfernten JAVA-Klassen löschen Tools - Maven, Gradle, Ant & mehr 11
J Java Webstart beschleunigen und Verlauf anzeigen Tools - Maven, Gradle, Ant & mehr 3
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
nabla Einbinden von externen Java und C Bibliotheken Tools - Maven, Gradle, Ant & mehr 5
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
I In Java Applets drucken Tools - Maven, Gradle, Ant & mehr 2
D Java Webstart startet .jar file nicht Tools - Maven, Gradle, Ant & mehr 13
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
U Java Webstartproblem ab Version 1.6_11 Tools - Maven, Gradle, Ant & mehr 7
S Java Ant per Console starten Tools - Maven, Gradle, Ant & mehr 3
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
M Java Swing Anwendung als Webanwendung Tools - Maven, Gradle, Ant & mehr 6
Raidri Java Programme installieren Tools - Maven, Gradle, Ant & mehr 5
S Java Webstart Tools - Maven, Gradle, Ant & mehr 3
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
T Java Anwendung installieren Tools - Maven, Gradle, Ant & mehr 7
T Statistiken zur Verbreitung von Java Tools - Maven, Gradle, Ant & mehr 5
D Java-Anwendung mit Bildern (JPG) verfügbar machen Tools - Maven, Gradle, Ant & mehr 7
F Kleines Java-Programm geschrieben, 30 Dateien? Tools - Maven, Gradle, Ant & mehr 16
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
F Probleme mit Java WebStart; Hauptklasse konnte nicht gef. Tools - Maven, Gradle, Ant & mehr 18
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
M Autostart unter Windows für Java Aplikation Tools - Maven, Gradle, Ant & mehr 10
J ANT: run/java: NoClassDefFoundError Tools - Maven, Gradle, Ant & mehr 2
C chatProgramm in java Tools - Maven, Gradle, Ant & mehr 5
L Java Webstart Tools - Maven, Gradle, Ant & mehr 6
B Java-Applet startet nicht aus dem Browser Tools - Maven, Gradle, Ant & mehr 1
K Java-Applet Uhrzeit Tools - Maven, Gradle, Ant & mehr 2
T Java Applett: Rückwärtskompabilität Tools - Maven, Gradle, Ant & mehr 2
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
H [gelöst] Java Stimmgerät bzw. Frequenzerzeugung gesucht Tools - Maven, Gradle, Ant & mehr 2
A RSS-Feeds auslesen mit JAVA speichern und Applet übergeben Tools - Maven, Gradle, Ant & mehr 2
D Java Web Start im Browser laufen lassen Tools - Maven, Gradle, Ant & mehr 10
W Java-Applet Funzt ned! Tools - Maven, Gradle, Ant & mehr 3
V dreieck ausfüllen (java) Tools - Maven, Gradle, Ant & mehr 6
M Java Security Tools - Maven, Gradle, Ant & mehr 2
B Java Applet im Systemtray Tools - Maven, Gradle, Ant & mehr 2
P Java Applets und Power Point Tools - Maven, Gradle, Ant & mehr 11
G Jar File Java Web Start Tools - Maven, Gradle, Ant & mehr 2
H Java 1.4 Applet, IE 6 und Java 6 funktioniert nicht zusammen Tools - Maven, Gradle, Ant & mehr 2
B Jukebox mit Java [Html Applet] Tools - Maven, Gradle, Ant & mehr 11
J Gästebuch mit Java Tools - Maven, Gradle, Ant & mehr 11
A Hilfe! Java Applet Lake von Anfy - wie in HP einbinden? Tools - Maven, Gradle, Ant & mehr 25
S bilder mit java beschreiben? Tools - Maven, Gradle, Ant & mehr 8

Ähnliche Java Themen

Neue Themen


Oben