Vous créez un nouveau projet. Le nouveau projet est votre projet d'assemblage EAR qui contient vos deux dépendances pour votre projet EJB et votre projet WAR.
Vous avez donc ici trois projets maven. Un EJB. Une guerre. Une oreille qui rassemble les deux parties et crée l'oreille.
Les descripteurs de déploiement peuvent être générés par maven ou placés dans le répertoire des ressources dans la structure du projet EAR.
Le plugin maven-ear-plugin est ce que vous utilisez pour le configurer, et la documentation est bonne, mais pas tout à fait claire si vous êtes toujours en train de comprendre comment maven fonctionne en général.
Donc, à titre d'exemple, vous pouvez faire quelque chose comme ceci:
<?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
commeejb
<type>ejb</type>
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing
et'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing
, vous voudrez peut-être mettre à jour votre excellente réponseCe qui m'a beaucoup aidé a été d'exécuter l'archétype Maven: générer un objectif et sélectionner l'un des archétypes, dont certains semblent être mis à jour régulièrement (en particulier JBoss semble être bien entretenu).
Des centaines d'archétypes sont apparus dans une liste numérotée à partir de laquelle sélectionner (519 à partir de maintenant!). L'objectif, toujours en cours d'exécution, m'a incité à faire une sélection en entrant un nombre ou en entrant une chaîne de recherche par exemple:
J'ai entré la chaîne de recherche "oreille", ce qui a réduit la liste à seulement 8 éléments (à ce jour):
J'ai sélectionné "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (en entrant la sélection "5" dans cet exemple).
Ensuite, l'objectif m'a demandé d'entrer le groupId, artifactId, les noms de package, etc., et il a ensuite généré l'exemple d'application bien documenté suivant:
Après avoir lu les quatre fichiers POM, qui ont été bien commentés, j'avais à peu près toutes les informations dont j'avais besoin.
la source
J'ai créé un référentiel github pour montrer ce que je pense être une bonne structure de projet de démarrage (ou des meilleures pratiques) ...
https://github.com/StefanHeimberg/stackoverflow-1134894
quelques mots clés:
Sortie Maven:
la source
NetBeans IDE définit automatiquement la structure qui est presque similaire à celle suggérée par Patrick Garner. Pour les utilisateurs de NetBeans
Fichier -> Nouveau projet -> Dans le côté gauche, sélectionnez Maven et dans le côté droit, sélectionnez Maven Enterprise Application et appuyez sur Suivant -> Demande des noms de projet pour war, ejb et paramètres.
L'EDI créera automatiquement la structure pour vous.
la source
Ceci est un bon exemple de la partie maven-ear-plugin .
Vous pouvez également vérifier les archétypes maven qui sont disponibles à titre d'exemple. Si vous exécutez simplement mvn archetype: generate, vous obtiendrez une liste des archétypes disponibles. L'un d'eux est
la source
maven-archetype-j2ee-simple
semble inutilement complexe dans sa structure - en particulier avec des modules à l'intérieur de modules, et des modules séparés pour des choses comme la journalisation. Je n'ai pas compris la raison d'être de cette structureJ'ai cherché haut et bas un exemple de bout en bout d'une application complète basée sur l'oreille basée sur maven et je suis finalement tombé sur cela . Les instructions indiquent de sélectionner l'option 2 lors de l'exécution via l'interface de ligne de commande, mais pour vos besoins, utilisez l'option 1.
la source