2010-01-07 5 views
36

द्वारा उलझा हुआ है मैं एकीकृत जावा परियोजनाओं के साथ मौजूदा जावा परियोजनाओं का समूह पुनः स्थापित कर रहा हूं। चूंकि प्रत्येक परियोजना परिपक्व है और स्थापित किया है चींटी आधारित निर्माण सब मैं maven-antrun-plugin उपयोग कर रहा हूँ मौजूदा build.xml इस प्रकार निष्पादित करने के लिए:JAVA_HOME मेवेन

 <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>compile</phase> 
        <configuration> 
         <tasks> 
          <ant antfile="build.xml" target="compile" /> 
         </tasks> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

जब मैं चलाने mvn compile निर्माण इस संदेश के साथ विफल रहता है:

[INFO] An Ant BuildException has occured: The following error occurred 
     while executing this line: 
build.xml:175: Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "C:\Java\jdk1.6.0_13\jre" 

क्या पहेली मुझे

  1. है मैं अपने वातावरण सेटअप के भाग के रूप JAVA_HOME=C:\Java\jdk1.6.0_13 है और जब mvn.bat निष्पादित किया जाता है कि exa है ctly मूल्य मैं हो रही है, आप त्रुटि संदेश में देखते हैं तथापि के रूप में अगर मैं ant compile सब कुछ ठीक संकलित चलाने

यह है कि शायद maven-antrun-pluginset JAVA_HOME=%JAVA_HOME%\jre की तरह कुछ करता है क्या इसका मतलब यह C:\Java\jdk1.6.0_13\jre

  • के रूप में आता है? मैं अपने बैच की खोज/फ़ाइलें मैं नहीं मिल सकता है का निर्माण जहां कि परिवर्तन होता है

  • उत्तर

    13

    मैं अपने चींटी build.xml फ़ाइल में निम्न संपत्ति परिभाषा डालकर इसे ठीक करने में सक्षम था: नीचे Thats

    <property name="build.compiler" value="extJavac"/> 
    
    18

    एक स्वीकृत उत्तर में बाहरी लिंक की तरफ। कोडहॉस बंद हो गया और इस प्रकार समाधान समाप्त हो गया। संदर्भ के लिए यहाँ लिंक के पीछे सामग्री है - आप मूल रूप से केवल अपने antrun प्लगइन को <dependencies>...</dependencies> ब्लॉक कॉपी करने की जरूरत है ...

    Maven-antrun-प्लगइन चींटी चलाता JAVA_HOME JDK के JRE उपनिर्देशिका करने के लिए सेट के साथ , भले ही JAVA_HOME कुल रन के लिए एक जेडीके है। जेडीके के टूल्स.जर के लिए प्रोजेक्ट लेवल पर निर्भरता बनाने के तरीके के बारे में कहीं और दस्तावेज है, लेकिन यह एक प्लगइन है, जो एंट्रून की मदद नहीं करता है। निम्नलिखित प्रोफ़ाइल नौकरी करता है। पथ में '..' 'lib' निर्देशिका को lib निर्देशिका में पीछे ले जाता है।

    <profiles> 
         <profile> 
          <id>tools.jar</id> 
          <build> 
          <plugins> 
          <plugin> 
           <groupId>org.apache.maven.plugins</groupId> 
           <artifactId>maven-antrun-plugin</artifactId> 
           <dependencies> 
           <dependency> 
            <groupId>com.sun</groupId> 
            <artifactId>tools</artifactId> 
            <version>1.5.0</version> 
            <scope>system</scope> 
            <systemPath>${java.home}/../lib/tools.jar</systemPath> 
           </dependency> 
           </dependencies> 
          </plugin> 
          </plugins> 
          </build> 
         </profile> 
    
    +1

    टूटी हुई लिंक का विस्तार करने के लिए धन्यवाद! – wrgrs

    +0

    आप महोदय, इंटरनेट नायक हैं, धन्यवाद, मैं इसे घंटों तक खोज रहा था। यह काम करता हैं। मैं सिर्फ जावा संस्करण 1.8.0 में बदल गया। यह अब स्वीकार्य उत्तर होना चाहिए! – Hoto