2010-07-26 13 views
8

मैं एकीकरण परीक्षण सूट पर काम कर रहा हूं और मुझे आपके लिए एक प्रश्न है।मेवेन - पीओएम: जेटी पोर्ट को बदलने योग्य कैसे बनाया जाए ताकि इसे बाद में पुनर्प्राप्त किया जा सके?

मेरा मूल पोम लक्ष्य के साथ जेटी प्लगइन के उपयोग को परिभाषित करता है: रन-वार। मुझे बंदरगाह बनाने की ज़रूरत है कि जेटी कमांड लाइन के माध्यम से बदलने योग्य सुनती है। यह उदाहरण के लिए -djetty.port = 8099 गुजरकर हासिल किया जा सकता है।

बाल प्रोजेक्ट में, मुझे कुछ एसओएपी परीक्षणों के लिए एंडपॉइंट को कॉन्फ़िगर करने के लिए इस पोर्ट नंबर का उपयोग करने की आवश्यकता है जिसे मुझे जेटी द्वारा होस्ट की गई सेवा पर चलाने की आवश्यकता होगी।

यदि मैं एंड-पॉइंट कॉन्फ़िगरेशन में अपने बच्चे के पोम में $ {jetty.port} का उपयोग करता हूं तो यह ठीक काम करता है IF और केवल अगर मैं स्पष्ट रूप से पास करता हूं- mjetty.port मेवेन का आह्वान करते समय।

मेरे बच्चे पोम में:


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

मैं jetty.port अगर -Djetty.port स्पष्ट रूप से पारित नहीं किया जाता है, जो क्या घाट चूक करने के लिए है 8080 के साथ में भरे जाने वाले, और अभी भी किसी अन्य पोर्ट मान को पकड़ने की जरूरत है यदि कमांड लाइन तर्क निर्दिष्ट है।

उत्तर

9

गुण अनुभाग का उपयोग करें, और एक डिफ़ॉल्ट मान के साथ एक jetty.port संपत्ति जोड़ें:

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

धन्यवाद। यह बहुत कठिन नहीं था :-) जैसे ही टाइमर समाप्त हो जाता है, मैं इस पोस्ट को उत्तर के रूप में स्वीकार करूंगा। – John

+2

यह काम नहीं करता है। – Bobo

+1

हाँ - यह मेरे लिए भी काम नहीं करता है। मैं कमांड लाइन पर -Djetty.port = 8080 कर सकता हूं, लेकिन पोम में डालकर काम नहीं करता है। – hba

7

config 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 कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर कर सकते हैं और अपना स्थान jettyXml पैरामीटर में डाल सकते हैं। ध्यान दें कि जेटी -9.0 के बाद से यह सीधे pom.xml में एक https कनेक्टर को कॉन्फ़िगर करना संभव नहीं है: आपको करने के लिए जेट्टी 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: ०५.०४७: जानकारी: oejs.ServerConnector: मुख्य: प्रारंभ [email protected]{HTTP/1.1}{0.0.0.0: }

आप के लिए Maven 3 और जावा 7 का उपयोग करने की आवश्यकता होगी प्लगइन का यह संस्करण।

संबंधित मुद्दे

 संबंधित मुद्दे