2014-03-31 3 views
1

지역 개발 테스트를 위해 jetty-maven-plugin을 사용합니다. 내가 원하는 것은 하나의 부두에서 실행 : 명령, pom.xml에 지정된 별도의 포트에서 부두 컨테이너의 무리를 시작합니다 - 전 전쟁 내에서 지정하고 싶지 않아요. 현재의 플러그인 구성 블록은 다음과 같습니다 ::jetty-maven-plugin 다중 전쟁 별개의 포트

<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에서 실행중인 동일한 부두 컨테이너 인스턴스에서 두 전쟁을 시작합니다. 전체 플러그인 블록의 인스턴스가 여러 개인 경우 누구나 포트를 설정하는 contextHandler 내의 스위치를 알고 있습니까? 필자가 조사한 모든 예제에는 전쟁 중에 jetty.xml 파일에 설정하는 옵션 만 있습니다.

+0

mainty 아래에 여러 개의 mvn 모듈을 만들고 jetty : run을 받았지만 구성이 다른 경우 어떻게됩니까? (일반적으로 콘솔을 가지고 있지는 않지만) – DrLivingston

답변

0

jetty maven 플러그인에서 다른 포트에서 실행할 수있는 복수의 connectors을 만들 수 있습니다. 그것은 첫 번째 시작입니다.

내가 얼마나 다른 사람인지 또는 그 블록이 다른 전쟁을 실행할 수 있는지 확실하지 않습니다. (나는 jetty.xml의에 문제가 아무것도 했어하지만) 그들은 다른 jetty.xml의 참조 할 수

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

+0

링크 된 문서에서 :: "jetty-9.0 이후 pom.xml에 https 커넥터를 직접 구성 할 수 없으므로 jetty xml config를 사용해야합니다 그것을 할 파일. " 설명서에 암시 된 유일한 대안은 위에서 사용 된 org.eclipse.jetty.webapp.WebAppContext를 사용하는 것이며 pom.xml에서 포트를 구성 할 수있는 것처럼 보이지 않습니다. – Mark

+0

오, 그 방법에 대해 . 나는 8을 ​​사용 해왔다. – DrLivingston

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입니다.

+0

이것은 좋았지 만, 불행히도 더 이상 작동 여부를 확인할 수있는 위치에 없다. 누군가 확인했는지 알기 위해 며칠을 드리 겠지만 그 후에는 이것이 옳은 것으로 간주하고 그런 것으로 표시 할 것입니다. – Mark