Какой плагин Maven GlassFish использовать?
Я пытаюсь интегрировать развертывание java .war
в GlassFish V3 через Maven. Хотя я нашел несколько плагинов, никто из них не выглядит очень активным:
И я получил самую большую информацию из Блог Eskato, он был написан в марте 2008 года, поэтому я не знаю, какое состояние Интеграция GlassFish Maven, и я не могу найти подходящий плагин для работы. С Maven GlassFish Plugin У меня был некоторый успех, но он все еще не работает полностью хорошо для всех целей, которые он говорит, что поддерживает, что делает некоторые из команд неэффективны.
Кто-нибудь еще смог успешно интегрировать Glassfish V3 и Maven? Если да, то какие ресурсы вы использовали для его выполнения?
Ответы
Ответ 1
Обновление: CARGO-491 исправлено, и я обновил свой ответьте соответственно. Итак, теперь есть три варианта:
Плагин Maven GlassFish
Первым вариантом будет использование Maven GlassFish Plugin. Этот плагин позволяет взаимодействовать с локальной или удаленной установкой GlassFish и управлять доменами Glassfish и развертываниями компонентов из жизненного цикла сборки Maven.
Плагин Maven для встроенного GlassFish
Второй вариант - использовать Maven Embedded Glassfish Plugin. Как указано по его названию, этот плагин не полагается на существующую установку, но использует встроенный GlassFish, работающий в той же JVM, что и плагин. Этот плагин очень приятный, если вы хотите сохранить свою сборку переносимой (любой может получить ваш POM и запустить сборку с GlassFish без его установки) с почти теми же функциями, что и обычная установка GlassFish, за исключением кластеризации, конечно (вы можете использовать предварительно сконфигурированный domain.xml
если вы хотите). См. Тестирование с помощью плагина GlassFish Maven и JavaDB Embedded для примера.
Плагин Maven Cargo
Работа, начатая Kohsuke Kawagushi, была наконец интегрирована в Cargo и, начиная с Cargo 1.0.1, GlassFish 3.x теперь поддерживается, Используя плагин Maven Cargo, является третьим вариантом. Это было бы интересно для сборщиков, которые хотят взаимодействовать с контейнерами агностическим способом. Но я не уверен, что Cargo допускает всю гибкость специального плагина GlassFish (например, развертывание ресурсов JMS и т.д.).
Ответ 2
maven-glassfish-plugin и maven-embedded-glassfish-plugin имеют свои плюсы и минусы. Основное различие заключается в том, что последний работает с экземпляром Embedded Glassfish, как указано его именем, то есть сервер работает в той же виртуальной машине, что и плагин.
Итак, вы не можете использовать плагин maven-embedded-glassfish для развертывания WAR на автономном сервере Glassfish, для этого вам нужен плагин maven-glassfish.
Основная проблема, с которой я столкнулся с плагином maven-glassfish, заключается в том, что его взаимодействие с сервером Glassfish является сдержанным - я не мог найти способ использовать его, чтобы моя WAR бы была развернута на сервере в любом случае, независимо от того, сработала ли предыдущая сборка или нет.
glassfish: развертывание не работает, если WAR уже развернут. glassfish: redeploy не работает, если WAR не развернут. И у Maven нет логики if-else...
Ответ 3
Я написал о том, как настроить плагин Maven Embedded GlassFish для правильной работы с GlassFish 4.0 до появления новой версии этого плагина.
https://blogs.oracle.com/brunoborges/entry/glassfish_4_beta_and_maven
Кроме того, можно настроить источник данных в файле glassfish-resources.xml и заставить его работать правильно.
https://blogs.oracle.com/brunoborges/entry/configure_datasources_for_maven_embedded
Это полезные советы для тех, кто хочет запускать проекты Java EE 7 с Maven и GlassFish 4
Ответ 4
Вы можете использовать этот:
http://www.hascode.com/2011/09/java-ee-6-development-using-the-maven-embedded-glassfish-plugin/
https://github.com/andrzejsliwa/glassfish-maven-plugin/wiki
http://cargo.codehaus.org/Maven2+plugin
Ответ 5
Я использую плагин Glassfish на maven-glassfish-plugin.dev.java.net и сделал некоторые изменения кода для поддержки v3 сейчас. Я запросил статус коммиттера и дождался подтверждения. Надеюсь, я могу внести свои изменения.