Java jetty maven插件多个独立端口
我使用jetty maven插件进行本地开发测试。我想要的是从一个jetty:run命令开始,在pom.xml中指定的不同端口上启动一堆jetty容器——我不想在war中指定它。我当前的插件配置块如下所示:Java jetty maven插件多个独立端口,java,maven,jetty,maven-jetty-plugin,Java,Maven,Jetty,Maven Jetty Plugin,我使用jetty maven插件进行本地开发测试。我想要的是从一个jetty:run命令开始,在pom.xml中指定的不同端口上启动一堆jetty容器——我不想在war中指定它。我当前的插件配置块如下所示: <configuration> <scanIntervalSeconds>0</scanIntervalSeconds> <contextHandlers> <contextHandler implementati
<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>
0
${basedir}/service-a/target/a.war
/a
真的
${basedir}/service-b/target/b.war
/b
真的
我知道我可以指定-Djetty.port,但这会全局设置端口。上面的示例在端口8080上运行的同一jetty容器实例中启动两个WAR。是否有人知道contextHandler中的一个开关可以设置端口,或者如果我有整个插件块的多个实例,如何设置端口?我搜索的每个示例都只能在war中的jetty.xml文件中进行设置,我不想这样做。在jetty maven插件中,您可以创建多个可在不同端口上运行的连接器。这是第一次开始 我不确定这些
connector
块如何或是否可以运行不同的战争。它们可以引用不同的jetty.xml(尽管我在使用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>
8080
实例(u 8080)
8081
实例_8081
${basedir}/service-a/target/a.war
/a
实例(u 8080)
${basedir}/service-b/target/b.war
/b
实例_8081
注意,此配置用于
org.mortbay.jetty:jetty maven插件
如果您在主mvn模块下创建了多个mvn模块,这两个模块都接收到jetty:run,但配置不同,会发生什么?(虽然这通常会占用控制台,但不会占用控制台)从链接的文档::“请注意,由于jetty-9.0已无法在pom.xml中直接配置https连接器:您需要使用jetty xml配置文件来完成此操作。”文档中暗示的唯一替代方法是使用org.eclipse.jetty.webapp.WebAppContext(如上所述)从这里看,您似乎无法从pom.xmloh配置端口,怎么样。我一直在使用8。这看起来不错,但不幸的是,我无法再验证它是否有效。我会给它几天,看看是否有人验证,但在那之后,我会假设这是正确的,并标记为这样。