首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过Maven编译Java 7代码

通过Maven编译Java 7代码
EN

Stack Overflow用户
提问于 2012-12-27 00:05:26
回答 16查看 243.1K关注 0票数 155

我的pom文件列表

代码语言:javascript
复制
<project>
  <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
  ...

但是在mvn clean install上,我得到了

代码语言:javascript
复制
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>

/usr/bin/java -version是(此处为which java points )

代码语言:javascript
复制
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

javac还指向正确的Java版本

代码语言:javascript
复制
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac

在这台机器上,我使用的是zsh (echo $0返回-zsh)

在我的.zshrc中,我定义了:

代码语言:javascript
复制
 33 # HOME
 34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
 35 SCALA_HOME=/Library/Scala/current
 36 FORGE_HOME=~/tools/forge/
 37 
 38 # PATH
 39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
 40 PATH=${PATH}:${JAVA_HOME}/bin
 41 PATH=${PATH}:/bin/
 42 PATH=${PATH}:/sbin/
 43 PATH=${PATH}:/usr/bin/
 44 PATH=${PATH}:/usr/sbin/
 45 PATH=${PATH}:/opt/local/bin/
 46 PATH=${PATH}:/opt/local/sbin/
 47 PATH=${PATH}:/usr/local/git/bin
 48 PATH=${PATH}:/usr/local/git/sbin
 49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
 50 PATH=${PATH}:${SCALA_HOME}/bin
 51 PATH=${PATH}:${FORGE_HOME}/bin
 52 
 53 export PATH

当我运行mvn clean install --debug时,我发现实际上我使用的是Java6

代码语言:javascript
复制
  1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
  2 Maven home: /usr/share/maven
  3 Java version: 1.6.0_35, vendor: Apple Inc.
  4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

它可以在哪里定义?我有源(D)我的.zshrc多次。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2012-12-27 00:50:19

检查maven安装中的mvn脚本,看看它是如何构建命令的。也许您或其他人在其中硬编码了一个JAVA_HOME,但却忘记了它。

票数 153
EN

Stack Overflow用户

发布于 2013-11-18 05:04:03

我也有同样的问题,为了解决这个问题,我关注了这篇博客文章:http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/

代码语言:javascript
复制
$ vim .bash_profile 

export JAVA_HOME=$(/usr/libexec/java_home)

$ source .bash_profile

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

@mkyong的特殊tks

编辑:现在我使用:jEnv + sdkman

票数 48
EN

Stack Overflow用户

发布于 2014-09-05 15:52:01

请查看您的pom.xml以获取以下标签

代码语言:javascript
复制
<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

它应该指向所需的jdk版本

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14043042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档