Я использую plug-maven-plugin для локального тестирования. То, что я хочу, - это одна команда: запустить команду, запустить кучу контейнеров причалов на отдельных портах, как указано в pom.xml, - я не хочу указывать ее в ходе войны. Мой текущий блок конфигурации плагина выглядит так:
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>${basedir}/service-a/target/a.war</war>
<contextPath>/a</contextPath>
<allowNullPathInfo>true</allowNullPathInfo>
</contextHandler>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>${basedir}/service-b/target/b.war</war>
<contextPath>/b</contextPath>
<allowNullPathInfo>true</allowNullPathInfo>
</contextHandler>
</contextHandlers>
</configuration>
Я знаю, что могу указать -Djetty.port, но глобально устанавливает порт. Вышеприведенный пример запускает обе войны в том же экземпляре контейнера причала, который запущен на порту 8080. Кто-нибудь знает переключатель внутри contextHandler, чтобы установить порт или как это сделать, если у меня есть несколько экземпляров всего блока плагина? В каждом примере, который я искал, есть возможность установить его в файле jetty.xml в ходе войны, который я не хочу делать.
Это возможно, если вы называете соединители и обработчики контекста
<configuration>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8080</port>
<name>instance_8080</name>
</connector>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8081</port>
<name>instance_8081</name>
</connector>
</connectors>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>${basedir}/service-a/target/a.war</war>
<contextPath>/a</contextPath>
<connectorNames>
<item>instance_8080</item>
</connectorNames>
</contextHandler>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>${basedir}/service-b/target/b.war</war>
<contextPath>/b</contextPath>
<connectorNames>
<item>instance_8081</item>
</connectorNames>
</contextHandler>
</contextHandlers>
</configuration>
Обратите внимание: эта конфигурация предназначена для org.mortbay.jetty:jetty-maven-plugin
.
В вашем плагине причала maven вы можете создать несколько connectors
которые могут работать на разных портах. Это первый старт.
Я не уверен в том, как или если эти блоки connector
могут запускать разные войны. Они могут ссылаться на различные jetty.xml (хотя у меня не было ничего, кроме проблем с jetty.xml)