使用maven编译失败

时间:2016-06-24 15:07:44

标签: java eclipse maven

我正在尝试使用maven在eclipse中构建一个spark应用程序,但是编译失败了。我修复了UpdateUser系统变量,为它提供了JDK的路径,而不是JRE,如下所示:

JAVA_HOME

我将此字符串添加到Name:JAVA_HOME , value:C:\Program Files\Java\jdk1.8.0_73 变量PATH,但它无效。 所以,我尝试了没有"C:\Program Files\Java\jdk1.8.0_73\bin"如下"\bin",但没有新的。

所以我试图通过eclipse将我的JDK指向如下:"C:\Program Files\Java\jdk1.8.0_73",我也选择了JDK但是这个解决方案也没有用,所以我决定使用cmd修复它:

window->preferences->java->installed JREs

我检查了set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_73" echo %JAVA_HOME% set PATH=%PATH%;%JAVA_HOME%\bin echo %PATH% ,结果是java -version所以我认为一切都没问题,但事实并非如此。

有时我在错误消息中有jdk1.8.0_73缺失,有时我得到其他错误,提到我可能正在使用JRE而不是JDK(但我确定我指的是JDK )。它出现在this image

图片2显示我的tools.jar文件:

这是我在文件pom.xml中使用pom.xml时出现的第一个错误,如图所示

  

[错误]无法在项目myapp上执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile):编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK?

但当我用maven-compile-plugin替换它时,我收到此错误:

  

[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.5.1:在项目myapp上编译(default-compile):致命错误编译:找不到tools.jar:C: \ Program Files \ Java \ jre1.8.0_91 .. \ lib \ tools.jar - > [Help 1] [ERROR] [ERROR]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。 [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录。

我尝试了命令maven-resources-plugin,我找到了maven home(D:\ apache-maven-3.1.1),所以这是正常的,但令人惊讶的是java home(C:\ Program Files \ Java \ jdk1.8.0_73 \ JRE)。我再次检查了变量Path但是它是正确的(C:\ Program Files \ Java \ jdk1.8.0_73 \ bin)有什么问题?

请帮忙,我浪费了很多时间来解决这个问题。

我选择了我的项目 - >构建路径 - >配置构建路径 - > libraries-> jre系统库 - > edit->执行环境 - >选择javaSE-1.8(jdk 1.8.0-73),通常这意味着我正在使用java1.8,但我得到了这些错误日志:

  

[INFO] --- maven-resources-plugin:2.6:资源(默认资源)@ myapp -   [警告]使用平台编码(实际上是Cp1252)来复制过滤后的资源,即构建依赖于平台!

     

[INFO]复制0资源   [INFO] --- maven-compiler-plugin:2.5.1:compile(default-compile)@ myapp ---

     

[警告]尚未使用平台编码Cp1252设置文件编码,即构建依赖于平台!

     

[INFO]将1个源文件编译为C:\ Users \ pc \ Desktop \ eclipse \ myapp \ target \ classes   [错误]编译错误:

     

[错误] C:\ Users \ pc \ Desktop \ eclipse \ myapp \ src \ main \ java \ myapp \ Main.java:[107,38]错误:-source 1.5不支持lambda表达式   [INFO] BUILD FAILURE

     

[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.5.1:在项目myapp上编译(default-compile):编译失败

     

[错误] C:\ Users \ pc \ Desktop \ eclipse \ myapp \ src \ main \ java \ myapp \ Main.java:[107,38]错误:-source 1.5不支持lambda表达式

2 个答案:

答案 0 :(得分:1)

更改JAVA_HOME变量时并不意味着您正在更改Eclipse配置。 Eclipse管理自己的变量,您可以根据需要设置多个JDK。您需要在eclipse中添加JDK并将其分配给项目。

右键单击您的项目,构建路径 - >配置构建路径。选择" JRE系统库"在右侧选项中选择编辑,然后配置JDK。

答案 1 :(得分:0)

我的问题出乎意料,因为最后问题出现在pom.xml文件而不是设置中,我只更正了pom文件中的这个插件,一切都很好。

           <plugin>
            <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>