Sie erstellen ein neues Projekt. Das neue Projekt ist Ihr EAR-Assembly-Projekt, das Ihre beiden Abhängigkeiten für Ihr EJB-Projekt und Ihr WAR-Projekt enthält.
Sie haben hier also tatsächlich drei Maven-Projekte. Ein EJB. Ein Krieg. Ein OHR, das die beiden Teile zusammenzieht und das Ohr schafft.
Bereitstellungsdeskriptoren können von maven generiert oder im Ressourcenverzeichnis in der EAR-Projektstruktur abgelegt werden.
Das Maven-Ear-Plugin wird zum Konfigurieren verwendet, und die Dokumentation ist gut, aber nicht ganz klar, wenn Sie noch herausfinden, wie Maven im Allgemeinen funktioniert.
Als Beispiel könnten Sie so etwas tun:
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myEar</artifactId>
<packaging>ear</packaging>
<name>My EAR</name>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<version>1.4</version>
<modules>
<webModule>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<bundleFileName>myWarNameInTheEar.war</bundleFileName>
<contextRoot>/myWarConext</contextRoot>
</webModule>
<ejbModule>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<bundleFileName>myEjbNameInTheEar.jar</bundleFileName>
</ejbModule>
</modules>
<displayName>My Ear Name displayed in the App Server</displayName>
<!-- If I want maven to generate the application.xml, set this to true -->
<generateApplicationXml>true</generateApplicationXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<finalName>myEarName</finalName>
</build>
<!-- Define the versions of your ear components here -->
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>
</project>
type
alsejb
<type>ejb</type>
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing
und'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing
deshalb möchten Sie vielleicht Ihre ansonsten großartige Antwort aktualisierenWas mir sehr geholfen hat, war die Ausführung des Maven-Archetyps: Ziel generieren und aus einem der Archetypen auswählen, von denen einige regelmäßig aktualisiert zu werden scheinen (insbesondere JBoss scheint gut gepflegt zu sein).
Hunderte von Archetypen erschienen in einer nummerierten Liste, aus der ausgewählt werden konnte (ab sofort 519!). Das noch laufende Ziel veranlasste mich, eine Auswahl zu treffen, indem ich eine Nummer oder eine Suchzeichenfolge eingab, z.
Ich habe die Suchzeichenfolge "ear" eingegeben, wodurch die Liste auf nur 8 Elemente reduziert wurde (Stand heute):
Ich habe "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" ausgewählt (indem ich in diesem Beispiel die Auswahl "5" eingegeben habe).
Als nächstes forderte mich das Ziel auf, die Gruppen-ID, die Artefakt-ID, die Paketnamen usw. einzugeben, und es wurde die folgende gut dokumentierte Beispielanwendung generiert:
Nachdem ich die vier gut kommentierten POM-Dateien gelesen hatte, hatte ich so ziemlich alle Informationen, die ich brauchte.
quelle
Ich habe ein Github-Repository erstellt, um zu zeigen, was meiner Meinung nach eine gute (oder bewährte) Startup-Projektstruktur ist ...
https://github.com/StefanHeimberg/stackoverflow-1134894
einige Schlüsselwörter:
Maven-Ausgabe:
quelle
NetBeans IDE definiert automatisch die Struktur, die der von Patrick Garner vorgeschlagenen Struktur fast ähnlich ist. Für NetBeans-Benutzer
Datei -> Neues Projekt -> Wählen Sie auf der linken Seite Maven und auf der rechten Seite Maven Enterprise Application und klicken Sie auf Weiter -> Fragt nach Projektnamen für Krieg, EJB und Einstellungen.
Die IDE erstellt automatisch die Struktur für Sie.
quelle
Dies ist ein gutes Beispiel für den Maven-Ear-Plugin- Teil.
Sie können auch die Maven-Archetypen überprüfen, die als Beispiel verfügbar sind. Wenn Sie nur mvn archetype: generate ausführen, erhalten Sie eine Liste der verfügbaren Archetypen. Einer von ihnen ist
quelle
maven-archetype-j2ee-simple
scheint in der Struktur unnötig komplex zu sein - insbesondere bei Modulen innerhalb von Modulen und separaten Modulen für Dinge wie die Protokollierung. Ich habe dieIch habe für ein End-to-End - Beispiel einer vollständigen Maven-basiertes Ohr verpackt Anwendung hohe und niedriger gesucht und schließlich gestolpert diese . In den Anweisungen wird angegeben, dass beim Ausführen der CLI Option 2 ausgewählt werden soll. Verwenden Sie jedoch für Ihre Zwecke Option 1.
quelle