使用Maven构建时出现无效的目标版本错误

6
我最近升级了我的机器到最新的Java 6版本,在构建项目时一直出现这个错误。请问这是什么意思?
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project
 biz.minaret: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] javac: invalid target release: 1.6.0_45
[ERROR] Usage: javac <options> <source files>
[ERROR] use -help for a list of possible options

我的pom文件的一部分如下所示

  <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compiler.plugin.version}</version>
            <configuration>
                <source>1.6.0_45</source>
                <target>1.6.0_45</target>
                <encoding>UTF-8</encoding>
            </configuration>
  </plugin>

我的JAVA_HOME已经正确设置:

PS C:\Users\me\Documents\m

Documents\myproject> java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)>

并且:

Documents\myproject> javac -version
javac 1.6.0_45

你正在寻找JDK 1.6.0_45,你可以输入javac -version并查看你所拥有的版本。 - Mehul Rathod
更新JAVA_HOME和classpath指向最新版本。如果一切都失败了,而且您仍然在1.6上,并且没有制作针对特定Java版本(在您的情况下为45)的应用程序,则只需编辑源和目标标记以1.6为目标。 - happybuddha
4
源和目标应为1.6。 - Dave Newton
@DaveNewton 你能解释一下吗? - 0x56794E
4
由于该参数反映了javac的源代码和目标标志,因此接受类似于1.6/6、1.7/7而不是构建号之类的内容。详见http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#options。 - Dave Newton
显示剩余2条评论
2个回答

5

在使用版本号时,应该使用1.61.7这样的格式,不要带有构建编号。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>${maven.compiler.plugin.version}</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
    <encoding>UTF-8</encoding>
  </configuration>
</plugin>

应使用以下属性解决编码部分问题:
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

在您定义了之后,您可以将上述配置简化为以下内容:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>${maven.compiler.plugin.version}</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

0

不要在配置选项卡中修改pom.xml文件中的特定源和目标版本,而是通过环境变量指定它。

使用以下命令:

mvn clean install -Denv.JAVA_7_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

这将绝对解决错误。

谢谢,

普拉萨德


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接