2013-08-21 6 views
10

मैं अपने पीओएम को स्थापित करने की कोशिश कर रहा हूं जैसे कि जब मैं mvn exec:exec या mvn exec:java करता हूं तो यह पहले स्रोत को संकलित करेगा और यदि सफल हो, तो इसे निष्पादित करें।एमवीएन निष्पादन से पहले संकलित

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>exec</phase> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>my.main.class</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

या तो mvn exec:exec ... या mvn exec:java यह पहली संकलन नहीं है जब मैं करते हैं:

मैं निम्नलिखित और के बारे में <execution> हिस्सा चलती की कोशिश की है, लेकिन यह काम करने के लिए नहीं मिल सकता है। मैंने exec प्लगइन अनुभाग में <execution> भाग डालने का प्रयास किया है, लेकिन यह काम नहीं करता है?

+0

अपने निष्पादन से पहले "कंपाइलर: संकलन" क्यों न चलाएं: exec/exec: java? –

+2

@ एलाड मैं संकलन करना भूल जाता हूं और फिर भ्रमित हो जाता हूं क्यों कुछ भी नहीं बदला है। – Lerp

+0

@Lerp एक ही समस्या का सामना करते हुए, क्या आपको कोई समाधान मिला है? – Yaroslav

उत्तर

1

आप एक चरण (नीचे दिए गए उदाहरण में verify) build lifecycle में compile निम्न के कार्यकारी प्लगइन बाध्य कर सकते हैं:

<profile> 
    <id>proxy</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <executions> 
        <execution> 
         <phase>verify</phase> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
         <configuration> 
          <mainClass>my.main.class</mainClass> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

और से mvn verify चलाते हैं।

मुझे लगता है कि उत्तर बहुत देर हो चुकी है और आपको समाधान मिल सकता है। मैं बस उन लोगों के संदर्भ के रूप में जा रहा हूं जिन्हें इसकी आवश्यकता हो सकती है।

+3

इसके लिए धन्यवाद, लेकिन अगर मैं हूं सही ढंग से समझते हुए, ओपी 'सामान्य' मेवेन बिल्ड चक्र के हिस्से के रूप में 'mvn exec: [exec | java] 'और ** ** ** के [प्रत्यक्ष] निष्पादन के दौरान संकलन होने का प्रयास कर रहा है। स्पष्टीकरण के लिए, वे, जैसा कि हम 'mvn exec' चलाते हैं, पहले कोड बनाना चाहते हैं, लेकिन ** ** ** सामान्य मेवेन निर्माण चक्र/चरण के दौरान 'exec' चलाने के लिए नहीं चाहते हैं। –

0

यह एक पुराना विषय है, लेकिन किसी और को इसके लिए वैकल्पिक समाधान में रुचि हो सकती है।

यह वास्तव में क्या आप के लिए देख रहा है नहीं कर रहे थे, लेकिन आप संकलन और एक भी आदेश का उपयोग पर अमल कर सकते हैं:

mvn compile exec:exec 

इस तरह Maven हमेशा यह निष्पादित करने से पहले परियोजना संकलित कर देगा।

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