2010-07-26 5 views
8

Я работаю над комплектом тестов интеграции, и у меня есть вопрос для вас.Maven - POM: Как сделать порт порта измененным, чтобы его можно было найти позже?

My parent pom определяет использование плагина причала с целью: run-war. Мне нужно, чтобы порт, который причал прослушивал, изменялся через командную строку. Это может быть достигнуто, например, путем передачи -Djetty.port = 8099.

В дочернем проекте мне нужно использовать этот номер порта, чтобы настроить конечную точку для некоторых тестов SOAP, которые мне нужно будет запускать на сервисе, размещенном на пристани.

Если я использую $ {jetty.port} в моем дочернем pom в конфигурации конечной точки, это работает отлично IF и только если я явно передаю -Djetty.port при вызове maven.

В моей детской ПОМ:


<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

+2

Это не работает. – Bobo

+1

Да, это тоже не работает для меня. Я могу сделать -Djetty.port = 8080 в командной строке, но установка в pom не работает. – hba

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:

Вместо этого вы можете сконфигурировать коннекторы в стандартном файле конфигурации xml xls и поместить его местоположение в параметр jettyXml. Обратите внимание, что , поскольку jetty-9.0 больше не может сконфигурировать https-коннектор непосредственно в pom.xml: вам нужно использовать файлы конфигурации 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> 

Смотрите журнал после «МВН причалу: бежать ', в конце должен показать что-то вроде:
2013-09 -05 09: 49: 05,047: INFO: oejs.ServerConnector: главная: Начало [email protected]{HTTP/1.1}{0.0.0.0: }

Вам нужно будет использовать Maven 3 и Java 7 для эта версия плагина.

 Смежные вопросы

  • Нет связанных вопросов^_^