Maven 2 Maven-POM:如何使jetty端口可变,以便以后可以检索它?
我正在开发一个集成测试套件,我有一个问题要问你 我的父pom定义了jetty插件的使用,目标是:运行war。我需要通过命令行更改jetty侦听的端口。例如,这可以通过传递-Djetty.port=8099来实现 在子项目中,我需要使用此端口号为一些SOAP测试配置端点,这些测试需要在jetty托管的服务上运行 如果我在端点配置中的子pom中使用${jetty.port},当且仅当我在调用maven时显式传递-Djetty.port时,这就可以了 在我的孩子pom中:Maven 2 Maven-POM:如何使jetty端口可变,以便以后可以检索它?,maven-2,jetty,pom.xml,Maven 2,Jetty,Pom.xml,我正在开发一个集成测试套件,我有一个问题要问你 我的父pom定义了jetty插件的使用,目标是:运行war。我需要通过命令行更改jetty侦听的端口。例如,这可以通过传递-Djetty.port=8099来实现 在子项目中,我需要使用此端口号为一些SOAP测试配置端点,这些测试需要在jetty托管的服务上运行 如果我在端点配置中的子pom中使用${jetty.port},当且仅当我在调用maven时显式传递-Djetty.port时,这就可以了 在我的孩子pom中: <endpoint>
<endpoint>http://127.0.0.1:${jetty.port}/{artifactId}<endpoint>
http://127.0.0.1:${jetty.port}/{artifactId}
我需要用8080填充jetty.port,如果未显式传递-Djetty.port,则jetty默认使用8080,并且如果指定了命令行参数,则仍会捕获任何其他端口值。使用属性部分,并添加一个具有默认值的jetty.port属性:
<properties>
<jetty.port>8080</jetty.port>
</properties>
8080
配置maven jetty插件:
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1H.14.1</version>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8085</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
org.mortbay.jetty
:
您可以在标准jetty xml配置文件中配置连接器,并将其位置放入jettyXml参数中。请注意,自jetty-9.0以来,无法再在pom.xml中直接配置https连接器:您需要使用jetty xml配置文件来完成此操作。
比如:
org.eclipse.jetty
jetty maven插件
9.0.5.v20130815
src/main/resources/jetty.xml
/yourCtxPath
我会做这个把戏的
jetty.xml文件内容:
30000
请参阅“mvn jetty:run”后面的日志,结尾处应显示如下内容:
2013-09-05 09:49:05.047:信息:oejs.ServerConnector:main:已启动ServerConnector@a6e9cb4{HTTP/1.1}{0.0.0.0:8085}
此版本的插件需要使用maven 3和java 7。谢谢。这并不难:-)我会在计时器一用完就接受这篇文章作为回答。是的,它对我也不起作用。我可以在命令行中执行-Djetty.port=8080,但是输入pom不起作用。您也可以执行以下操作:export MAVEN_OPTS=“-Djetty.port=9999”此环境。变量消除了对命令行选项的需要。这是一个非常有用的答案,特别是因为文档目前在这方面不正确,错误地说属性应该是jetty.http.port
,它不再工作。到目前为止,只有export MAVEN_OPTS=“-Djetty.port=9999”对我有效
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.5.v20130815</version>
<configuration>
<jettyXml>src/main/resources/jetty.xml</jettyXml>
<webApp>
<contextPath>/yourCtxPath</contextPath>
</webApp>
</configuration>
</plugin>
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call id="httpsConnector" name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref refid="Server" /></Arg>
<Set name="host"><Property name="jetty.host" /></Set>
<Set name="port"><Property name="jetty.port" default="8085" /></Set>
<Set name="idleTimeout">30000</Set>
</New>
</Arg>
</Call>
</Configure>