Я пытаюсь создать pom.xml
для обработки развертывания и отмены развертывания на удаленном сервере TomEE (PluME 7.0.3). Однако я не могу определить правильное значение для тега конфигурации path
. Вот рабочая конфигурация плагина для развертывания моего приложения (полномасштабного EAR, для образовательных целей) на удаленном TomEE:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<path>target/someear-1.0-SNAPSHOT.ear</path>
<useBinaries>true</useBinaries>
</configuration>
</plugin>
</plugins>
</build>
В то время как для отмены развертывания мне пришлось бы настроить плагин следующим образом:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<path>someear-1.0-SNAPSHOT</path>
<useBinaries>true</useBinaries>
</configuration>
</plugin>
</plugins>
</build>
Обратите внимание на разницу в конфигурации path
. В командной строке это работает аналогично; когда тег path
в pom.xml опущен, я могу развернуть и отменить развертывание следующим образом:
mvn tomee:deploy -Dtomee-plugin.archive=target/someear-1.0-SNAPSHOT.ear
mvn tomee:undeploy -Dtomee-plugin.archive=someear-1.0-SNAPSHOT
Кто-нибудь испытал такое же поведение и нашел способ смягчить это? Я бы хотел, чтобы развертывание и удаление были полностью настроены в pom.xml без указания дополнительных параметров при вызове mvn
. Но на данный момент я не могу этого сделать, так как tomee:deploy
, кажется, ожидает другого path
, чем tomee:undeploy
.
РЕДАКТИРОВАТЬ
Хорошо, на основе отредактированного ответа @Old School я могу сделать что-то вроде этого:
<profiles>
<profile>
<id>deploy</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<my-tomee-maven-plugin-path>target/someear-1.0-SNAPSHOT.ear</tomee-maven-plugin-path>
</properties>
</profile>
<profile>
<id>undeploy</id>
<properties>
<my-tomee-maven-plugin-path>someear-1.0-SNAPSHOT</tomee-maven-plugin-path>
</properties>
</profile>
</profiles>
Затем укажите path
в разделе конфигурации tomee-maven-plugin
следующим образом:
...
<path>${my-tomee-maven-plugin-path}</path>
...
Затем выполните maven следующим образом:
mvn tomee:deploy
mvn tomee:undeploy -Pundeploy
Что я считаю более удобным, чем указывать некоторые -D
параметров во время выполнения (YMMV).
Однако идеальным решением, на мой взгляд, было бы, если бы вы могли настроить path
в конфигурации tomee-maven-plugin
так, чтобы и tomee:deploy
, и tomee:undeploy
работали без лишних слов.
РЕДАКТИРОВАТЬ2
Я обнаружил еще одну возможность без профилей, которую, по-видимому, не мог найти раньше (на основе: http://tomee-openejb.979440.n4.nabble.com/Deployment-to-TomEE-7-0-0-using-tomee-maven-plugin-error-Cannot-open-input-stream-to-server-tp4679142p4679282.html):
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>${project.artifactId}</context>
<tomeeClassifier>plus</tomeeClassifier>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<!-- no <path> tag -->
<useBinaries>true</useBinaries>
</configuration>
<executions>
<execution>
<id>deploy-it</id>
<phase>none</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<path>target/someear-1.0-SNAPSHOT.ear</path>
</configuration>
</execution>
<execution>
<id>undeploy-it</id>
<phase>none</phase>
<goals>
<goal>undeploy</goal>
</goals>
<configuration>
<path>someear-1.0-SNAPSHOT</path>
</configuration>
</execution>
</executions>
</plugin>
Применение:
mvn tomee:deploy@deploy-it
mvn tomee:undeploy@undeploy-it