2012-06-05 15 views
8

मुझे मेवेन से एक सर्वर (जावा क्लास में कार्यान्वित) चलाने की ज़रूरत है, लेकिन यदि मैं exec: जावा लक्ष्य का उपयोग करता हूं, तो यह मैवेन को अवरुद्ध कर देगा और यह सर्वर से कनेक्ट होने वाले अगले चरण तक नहीं पहुंच जाएगा ।मैवेन से जावा सर्वर चलाएं

क्या निष्पादन चलाने का कोई तरीका है: जावा कार्य अतुल्यकालिक रूप से, मेवेन निष्पादन में बाधा डाले बिना?

धन्यवाद!

+0

किसी और के लिए हाल के समाधान की तलाश में, https://github.com/bazaarvoice/maven-process-plugin आज़माएं –

उत्तर

5

आप खोल स्क्रिप्ट चलाने के लिए exec-maven-plugin का उपयोग कर सकते हैं जो आपकी प्रक्रिया शुरू करेगा और इससे अलग हो जाएगा (पृष्ठभूमि में प्रक्रिया को चलाने की अनुमति दे रहा है)। कुछ इस तरह:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>start-server</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>src/test/scripts/run.sh</executable> 
      <arguments> 
      <argument>{server.home}/bin/server</argument> 
      </arguments> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

कहाँ run.sh (यू * nix मंच के लिए) इस तरह हो सकता है:

#! /bin/sh 
$* > /dev/null 2>&1 & 
exit 0 

कि चाल करना चाहिए।

0

यह आप antrun प्लगइन के साथ ऐसा कर सकते हैं की तरह लग रहा:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.3</version> 
      <configuration> 
       <tasks> 
        <java fork="true" spawn="true" classpathref="maven.runtime.classpath" className="fully.qualified.package.App"/> 
       </tasks> 
      </configuration> 
     </plugin> 
0

आप अपने Maven पोम में आगे एकीकरण परीक्षण चरणों चलाने के लिए इस सर्वर वर्ग चला रहे हैं, तो यह वास्तव में बेहतर विचार करने के लिए है Jenkins जैसे निरंतर एकीकरण टूल का उपयोग करके, इसमें बहुत सारे Plugins हैं जो आपको अपनी कक्षाएं चलाने, सर्वर शुरू करने और रोकने, एप्लिकेशन को तैनात करने और कई अन्य संभावनाओं को चलाने की अनुमति देता है, और यह मुफ़्त है।

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