2010-07-26 90 views
8

我正在開發一個集成測試套件,我有一個問題給你。Maven - POM:如何使碼頭端口可更改,以便以後可以檢索?

我的父母pom定義了jetty插件的用途:run-war。我需要通過命令行來讓jetty監聽的端口可以更改。這可以通過傳遞-Djetty.port = 8099來實現。

在子項目中,我需要使用此端口號來配置端點以進行一些SOAP測試,這些測試需要在由jetty託管的服務上運行。

如果我在終點配置中使用$ {jetty.port}在我的子pom中,這可以正常工作,並且只在調用maven時顯式傳遞-Djetty.port。

在我的孩子POM:


<endpoint>http://127.0.0.1:${jetty.port}/{artifactId}<endpoint> 

我需要jetty.port來填充與8080如果-Djetty.port沒有明確傳遞這就是碼頭默認爲,並且還捕捉任何其他端口值如果指定了命令行參數。

回答

9

使用屬性部分,並用默認值添加jetty.port屬性:

<properties> 
    <jetty.port>8080</jetty.port> 
</properties> 
+0

謝謝。這並不難:-)一旦定時器用完,我會立即接受這篇文章。 – John 2010-07-26 11:49:06

+2

這不起作用。 – Bobo 2012-11-21 17:55:57

+1

是的 - 它也不適用於我。我可以在命令行上執行-Djetty.port = 8080,但在pom中放入不起作用。 – hba 2013-03-16 01:14:33

7

配置的Maven插件碼頭:

<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> 

如果你想使用碼頭的新版本插件,請使用以下配置:

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

您可以在標準jetty xml配置文件中配置連接器,並將其位置放入jettyXml參數中。請注意,自從jetty-9.0以來,不再可以直接在pom.xml中配置https連接器:您需要使用jetty xml配置文件來執行此操作。
喜歡的東西:

<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> 

會做的伎倆,與 的jetty.xml文件內容:


<?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> 

見後「MVN碼頭日誌:運行',最後應顯示如下:
2013-09 -05 09:49:05.047:信息:oejs.ServerConnector:主:開始[email protected]{HTTP/1.1}{0.0.0.0:}

你需要使用Maven 3和Java 7這個版本的插件。

相關問題