32 votes

Quel plugin Maven GlassFish utiliser ?

J'ai essayé d'intégrer le déploiement de java .war dans GlassFish V3 via Maven. Bien que j'aie trouvé quelques plugins, aucun d'entre eux ne semble être très actif :

Et j'ai obtenu le plus d'informations de Le blog d'Eskato Il a été écrit en mars 2008, donc je ne sais pas où en est l'intégration de GlassFish Maven, et je ne peux pas trouver un plugin approprié pour travailler avec. Avec le Maven GlassFish Plugin J'ai eu un certain succès, mais il ne fonctionne toujours pas parfaitement pour tous les objectifs qu'il prétend prendre en charge, ce qui rend certaines commandes inefficaces.

Quelqu'un d'autre a-t-il pu intégrer Glassfish V3 et Maven avec succès ? Si oui, quelles ressources avez-vous utilisées pour y parvenir ?

41voto

Pascal Thivent Points 295221

Mise à jour : CARGO-491 a été corrigé et j'ai mis à jour ma réponse en conséquence. Pour résumer, il y a maintenant essentiellement trois options :

Maven GlassFish Plugin

Une première option serait d'utiliser le Maven GlassFish Plugin . Ce plugin permet d'interagir avec une installation locale ou distante de GlassFish et avec l'application gestion des domaines Glassfish et des déploiements de composants à partir du cycle de vie de la construction Maven .

Plugin GlassFish intégré dans Maven

La deuxième option serait d'utiliser l'option Maven Embedded Glassfish Plugin . Comme son nom l'indique, ce plugin ne s'appuie pas sur une installation existante mais utilise un GlassFish intégré, fonctionnant dans la même JVM que le plugin. Ce plugin est extrêmement utile si vous voulez garder votre build portable (n'importe qui peut obtenir votre POM et exécuter un build impliquant GlassFish sans l'avoir installé) avec presque les mêmes fonctionnalités qu'une installation GlassFish normale, à l'exception du clustering bien sûr (vous pouvez utiliser un clustering préconfiguré). domain.xml si vous le souhaitez). Voir Test avec le plugin Maven GlassFish et JavaDB Embedded pour un exemple.

Plugin Maven Cargo

Le travail initié par Kohsuke Kawagushi a été finalement intégré dans Cargo et, à partir de Cargo 1.0.1, GlassFish 3.x est maintenant supporté . Utilisation du Plugin Maven Cargo est donc une troisième option. Ce serait intéressant pour les constructions qui veulent interagir avec les conteneurs d'une manière agnostique. Mais je ne suis pas sûr que Cargo permette toute la flexibilité du ou des plugins spécifiques à GlassFish (par exemple, le déploiement de ressources JMS, etc).

8voto

hwellmann Points 2112

Maven-glassfish-plugin et maven-embedded-glassfish-plugin ont tous deux leurs avantages et leurs inconvénients. La principale différence est que ce dernier fonctionne avec une instance Glassfish embarquée, comme l'indique son nom, c'est-à-dire que le serveur tourne dans la même VM que le plugin.

Vous ne pouvez donc pas utiliser maven-embedded-glassfish-plugin pour déployer votre WAR sur un serveur Glassfish autonome, vous avez besoin de maven-glassfish-plugin pour le faire.

Le principal problème que j'ai rencontré avec le maven-glassfish-plugin est le fait que son interaction avec le serveur Glassfish est liée à l'état - je n'ai pas pu trouver un moyen de l'utiliser de telle sorte que mon WAR soit déployé sur le serveur dans tous les cas, que la construction précédente ait réussi ou non.

glassfish:deploy ne fonctionne pas si le WAR est déjà déployé. glassfish:redeploy ne fonctionne pas si le WAR n'est pas déployé. Et Maven n'a pas de logique if-else...

2voto

Bruno Borges Points 420

J'ai écrit un blog sur la façon de configurer le plugin Maven Embedded GlassFish pour qu'il fonctionne correctement avec GlassFish 4.0 jusqu'à ce qu'il y ait une nouvelle version de ce plugin.

https://blogs.oracle.com/brunoborges/entry/glassfish_4_beta_and_maven

Il est également possible de configurer une source de données dans le fichier glassfish-resources.xml et de la faire fonctionner correctement.

https://blogs.oracle.com/brunoborges/entry/configure_datasources_for_maven_embedded

Ces conseils sont utiles à tous ceux qui veulent exécuter des projets Java EE 7 avec Maven et GlassFish 4.

1voto

0voto

J'utilise le plugin glassfish sur maven-glassfish-plugin.dev.java.net et j'ai fait quelques changements de code pour supporter la v3 maintenant. J'ai demandé le statut de participant et j'attends l'accusé de réception. J'espère pouvoir commiter mes changements.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X