2014-08-29 88 views
1

第四次输入这个消息了,因为这蹩脚的机器,我全天随机使用崩溃。得爱它。Maven在哪里寻找JDK?

我的开发环境JAVA_HOME设置为 “C:jdk1.7.0_45” 并在POM我有以下

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
    <verbose>true</verbose> 
    <fork>true</fork> 
    <executable>${JAVA_HOME}\jdk1.7.0_45\bin\javac</executable> 
    <compilerVersion>1.7</compilerVersion> 
    <configuration> 
</plugin> 

而且还试图

<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> 
</plugin> 

所以为什么我得到错误:-source 1.5不支持multi-catch语句? 我没有看到任何引用1.5的东西。

而且,我不是清楚的源和目标是精确现在只是假设的东西,同样什么Maven的编译器插件放置。

任何直接的回答这些问题将不胜感激,因为我是新的,不知道去我不知道的部分读了,因为什么我的工作,我不知道它是什么所谓的也不是我要问的是我要仰望什么。没有人知道如何使用Maven。在这个痛苦的环境中欣赏任何指导。

=========================== 

以下是我必须拥有它以便默认1.5不执行。 将JAVA_HOME更改为JDK 1.7路径。

<configuration> 
    <forceJavacCompilerUse>true</forceJavacCompilerUse> 
    <source>1.7</source> 
    <target>1.7</target> 
</configuration> 

但是,其他需要1.6的项目现在已经损坏。多么可怕的设置。

+0

你只需要在后面的配置,其中你的'javac'完全位于哪里?这里键入路径 – 2014-08-29 16:31:14

+0

对不起@JigarJoshi刚才看到您的帖子。我的javac位于C:jdk1.7.0_45 \斌\的javac.exe 另外,你是什么意思“你只需要以后配置”? – Elijah 2015-05-27 13:41:44

回答

1

Maven的编译器插件,如解释here

the default source setting is 1.5 and the default target setting is 1.5

而且在该链接中提到,您可以尝试配置"forceJavacCompilerUse"

+0

我是在假设,如果我指定我JAVA_HOME指向1.7并且有指定的源和目标1.5,这些项目将基于1.5内置POM文件所纠正。基本上向后兼容我指定的JDK,而如果JAVA_HOME指向1.5,则不能指定1.7。这似乎是如何运作,我想证实这一点。 – Elijah 2014-09-05 11:30:43

1

尝试使用

<properties> 
    <maven.compiler.target>1.7</maven.compiler.target> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.test.skip>true</maven.test.skip> 
</properties>