2015-04-29 27 views
0

我嘗試使用maven構建項目。每次我可以不小心收到錯誤隨機「沒有編譯器提供」錯誤Maven

No compiler is provided in this environment. perhaps you are running on a jre rather than a jdk? 

而且我可以再次運行生成,一切都很好。

JAVA_HOME C:\Program Files\Java\jre1.8.0_40 
M2_HOME C:\Program Files\Maven 

D:\java_projects>mvn -version 
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T23:58:10+03:00) 
Maven home: C:\Program Files\Maven 
Java version: 1.8.0_40, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jre1.8.0_40 
Default locale: en_US, platform encoding: Cp1251 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 
D:\java_projects> 

的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.epam</groupId> 
    <artifactId>News</artifactId> 
    <version>0.0.2-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <properties> 
     <jdk.version>1.8</jdk.version> 
     <spring.version>4.1.5.RELEASE</spring.version> 
     <jstl.version>1.2</jstl.version> 
     <junit.version>4.12</junit.version> 
     <tiles.version>3.0.5</tiles.version> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>${jdk.version}</source> 
        <target>${jdk.version}</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${spring.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${spring.version}</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>1.9.5</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.unitils</groupId> 
      <artifactId>unitils-dbunit</artifactId> 
      <version>3.4.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.github.springtestdbunit</groupId> 
      <artifactId>spring-test-dbunit</artifactId> 
      <version>1.2.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.2.0</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</project> 

我有這樣的錯誤使用CMD(MVN封裝)和使用Eclipse(Maven構建)的約40%

解決的90%:

下載最新的JDK,更新JAVA_HOME,更新Window->Preferences->Java->Installed JREs

+0

無論如何,你應該嘗試使用JDK而不是JRE – Tome

+0

如果你想建立在JRE而不是JDK上,你需要你的pom文件來指定一個編譯器。 Eclipse編譯器可從Maven Central獲得。 –

回答

0

如錯誤所示,您在jre上運行它,請選擇您的jdk路徑。

窗口 - >首選項 - > Java的>安裝JREs-> jre1.8.0_40

你應該有一個JDK有一個條目。如果沒有指向JDK。

然後,

右擊項目 - >的Maven - >更新項目

+0

我做了100萬次,但它一次又一次地出現錯誤 –

+0

@VyacheslavTsivina你指出它到'JDK'路徑嗎? –

+0

謝謝。新的JDK解決了我的問題。這樣愚蠢的錯誤 –

0

安裝JDK並設置JAVA-HOME到你的JDK路徑。