Если вы хотите использовать только maven-glassfish-plugin (скажем, версия 2.1), вы можете выполнить удаленное развертывание, указав параметр "host". Ниже приведен пример, где конфигурации настраиваются в maven settings.xml, и плагин загружает их, используя профиль:
В файле settings.xml определите профиль:
<profile>
<id>production-config</id>
<properties>
<glassfish.glassfishDirectory>/var/local/glassfish/</glassfish.glassfishDirectory>
<glassfish.user>admin</glassfish.user>
<glassfish.adminPassword>adminadmin</glassfish.adminPassword>
<glassfish.domain.name>prd-domain</glassfish.domain.name>
<glassfish.domain.host>NAMEOFYOURREMOTEHOST</glassfish.domain.host>
<glassfish.domain.adminPort>10161</glassfish.domain.adminPort>
.
.
</properties>
</profile>
Далее поместите этот профиль в ваши активные профили:
<activeProfiles>
<activeProfile>production-config</activeProfile>
</activeProfiles>
В вашем проекте maven pom.xml создайте профиль и добавьте плагин maven-glassfish в ваш список профилей:
<profile>
<id>production</id>
<activation>
<activeByDefault>false</activeByDefault>
<os>
<arch>x86</arch>
<family>linux</family>
</os>
<property>
<name>profile</name>
<value>production</value>
</property>
<file>
<exists>
${glassfish.glassfishDirectory}/domains/${glassfish.domain.name}/config/domain.passwords
</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<configuration>
<terse>true</terse>
<echo>true</echo>
<debug>true</debug>
<glassfishDirectory>${glassfish.glassfishDirectory}</glassfishDirectory>
<user>${glassfish.user}</user>
<adminPassword>${glassfish.adminPassword}</adminPassword>
<domain>
<name>${glassfish.domain.name}</name>
<host>${glassfish.domain.host}</host>
<adminPort>${glassfish.domain.adminPort}</adminPort>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
<executions>
<execution>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Это должно сработать. Вы можете запустить этот профиль, используя maven: mvn glassfish: deploy -P production или просто mvn deploy -P production (так как мы добавили цель deploy в части выполнения плагина)
Используя вышеописанную модель, вы можете создавать разные профили для каждой среды (dev, acc, tst, prd) и использовать разные настройки. Например, вы можете создать профиль разработчика, в котором для развертывания и запуска модульных / интеграционных тестов используется локальная стеклянная рыба.
Распространенная ошибка, которую делают люди, заключается в том, что они смешивают настройки компьютера, с которого вы выполняете удаленное развертывание, с хостом, на котором должно быть установлено развертывание. glassfishDirectory - это место, откуда вы запускаете плагин развертывания. В результате ошибки плагин просто зависает, ничего не делает и просто ждет, создавая впечатление, что что-то происходит. Другая ошибка - указать файл пароля вместо пароля для удаленного развертывания, что также ничего не даст.