Qual plugin do GlassFish para usar?

Eu tenho tentado integrar a implantação de java .war no GlassFish V3 através do Maven. Embora eu tenha encontrado alguns plugins, nenhum deles parece ser muito ativo:

  • Maven Glassfish Plugin
  • Blog WordPress da Eskato no Maven

E eu obtive o máximo de informação do Blog da Eskato , foi escrito em março de 2008, então eu não sei qual é o estado da integração do GlassFish Maven, nem posso encontrar um plugin adequado para trabalhar. Com o Maven GlassFish Plugin tive algum sucesso, mas ainda não funciona muito bem para todos os objectives que diz que suporta, o que torna alguns dos comandos ineficazes.

Alguém mais conseguiu integrar o Glassfish V3 e o Maven com sucesso? Em caso afirmativo, quais resources você usou para fazê-lo?

Atualização: CARGO-491 foi corrigido e atualizei minha resposta de acordo. Para resumir, agora existem basicamente três opções:

Maven GlassFish Plugin

Uma primeira opção seria usar o Maven GlassFish Plugin . Este plugin permite interagir com uma instalação local ou remota do GlassFish e o gerenciamento de domínios Glassfish e implementações de componentes de dentro do ciclo de vida de construção do Maven .

Plugin Maven Embedded GlassFish

A segunda opção seria usar o Maven Embedded Glassfish Plugin . Como afirma seu nome, este plugin não depende de uma instalação existente, mas usa um GlassFish embutido, rodando na mesma JVM que o plugin. Este plugin é extremamente bom se você quiser manter seu build portátil (qualquer um pode pegar seu POM e rodar um build envolvendo GlassFish sem tê-lo instalado) com quase os mesmos resources de uma instalação normal do GlassFish, exceto clusters (você pode usar um domain.xml pré-configurado, se desejar). Veja Testando com o plugin GlassFish Maven e JavaDB Embedded para um exemplo.

Maven Cargo Plugin

O trabalho iniciado por Kohsuke Kawagushi foi finalmente integrado na Cargo e, a partir do Cargo 1.0.1, o GlassFish 3.x é agora suportado . Usando o plugin Maven Cargo é, portanto, uma terceira opção. Isso seria interessante para construções que desejam interagir com contêineres de maneira agnóstica. Mas não tenho certeza se o Cargo permite toda a flexibilidade do (s) plugin (s) específico (s) do GlassFish (por exemplo, implantação de resources JMS, etc).

maven-glassfish-plugin e maven-embedded-glassfish-plugin ambos têm seus prós e contras. A principal diferença é que o último funciona com uma instância Embedded Glassfish, conforme indicado pelo seu nome, ou seja, o servidor está executando na mesma máquina virtual que o plugin.

Portanto, você não pode usar o plugin maven-embedded-glassfish para implantar seu WAR em um servidor Glassfish autônomo, você precisa do plugin maven-glassfish para fazer isso.

O principal problema que tive com o plugin maven-glassfish é o fato de que sua interação com o servidor Glassfish é stateful – eu não consegui encontrar uma maneira de usá-lo para que meu WAR fosse implementado no servidor em qualquer caso, não importa se a compilation anterior foi bem-sucedida ou não.

glassfish: deploy não funciona se o WAR já estiver implantado. glassfish: a reimplementação não funciona se o WAR não estiver implementado. E Maven não tem lógica if-else …

Eu escrevi sobre como configurar o plugin Maven Embedded GlassFish para funcionar corretamente com o GlassFish 4.0 até que haja uma nova versão desse plugin.

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

Além disso, é possível configurar uma fonte de dados no glassfish-resources.xml e fazer com que ela funcione corretamente.

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

Estas são dicas úteis para qualquer pessoa que queira executar projetos Java EE 7 com Maven e GlassFish 4

Eu uso o plugin glassfish em maven-glassfish-plugin.dev.java.net e fiz algumas alterações de código para suportar a v3 agora. Eu solicitei o status de committer e aguarde o reconhecimento. Espero poder confirmar minhas alterações.