jetty-maven-plugin多个战争分开的端口

时间:2014-03-31 20:51:37

标签: java maven jetty maven-jetty-plugin

我使用jetty-maven-plugin进行本地开发测试。我想要的是来自一个jetty:run命令,在pom.xml中指定的不同端口上启动一堆jetty容器 - 我不想在战争中指定它。我当前的插件配置块看起来像::

<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上运行的同一个jetty容器实例中启动两个war。如果我有整个插件块的多个实例,是否有人知道contextHandler中的开关来设置端口或如何操作?我搜索过的每个例子都可以选择在战争中的jetty.xml文件中设置它,我不想这样做。

2 个答案:

答案 0 :(得分:1)

如果您命名连接器和上下文处理程序

,则可以
<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

答案 1 :(得分:0)

在您的jetty maven插件中,您可以创建可在不同端口上运行的多个connectors。这是第一次开始。

我不确定这些connector块如何以及是否可以运行不同的战争。他们可以引用不同的jetty.xml(虽然我只有jetty.xml的麻烦)

http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-jetty-container