Maven enforcer不';t检测JDK1.7
我使用maven enforcer插件仅强制执行JDK1.7(我使用的是java.nio.file)。 出于某种原因,maven enforcer插件无法检测JDK1.7Maven enforcer不';t检测JDK1.7,maven,java,Maven,Java,我使用maven enforcer插件仅强制执行JDK1.7(我使用的是java.nio.file)。 出于某种原因,maven enforcer插件无法检测JDK1.7 λ ~/ java -version java version "1.7.0_13" Java(TM) SE Runtime Environment (build 1.7.0_13-b20) Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode) λ ~/
λ ~/ java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
λ ~/ javac -version
javac 1.7.0_13
λ ~/ mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: /usr/local/Cellar/maven/3.0.5/libexec
Java version: 1.7.0_13, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.7.5", arch: "x86_64", family: "mac"
这是我在pom.xml中的代码-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>1.7</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
编辑
mvn实施者:显示信息
显示版本1.7而不是1.6。。。为什么强制检测java版本1.6?版本取消是固定的。您提供的是java的精确版本。请始终记住,如果我们不确定确切版本,则应提供范围。将版本更改为[1.7,]
[1.7,)
这意味着任何等于或大于1.7的版本都可以接受。添加以下内容(如果缺少此文件,则创建此文件)~/.mavenrc
export JAVA_HOME=/Library/Java/JavaVirtualMachines/{your-jdk-here}/Contents/Home
.mavenrc
仅由maven拾取,因此其他Java程序不会受到此更改的影响。您没有说明运行的操作系统,但命令“Java…”将在路径上找到名为Java(或windows上的Java.exe)的第一个可执行文件,这可能是您希望与maven一起使用的文件,也可能不是
linux下有一个名为“Alternations”的系统,它将java的特定安装映射到几乎确定的位置(除非您弄乱了路径)此系统的目的是允许您在系统中保留多个版本的程序,如java,并将其中一个版本作为默认版本,除非您指定其他版本
然而,这与Maven无关,Maven需要JDK安装才能正确运行。Maven依赖的java JDK安装中有许多可执行文件,javac编译器,用于构建jar的jar可执行文件,仅举几个最明显的例子。使用替代系统,您必须映射alternativ这就是为什么Maven转而依赖JAVA_HOME变量的原因
在linux系统上,设置JAVA_HOME变量的一个方便的地方是文件~/.mavenrc。如果存在该文件,Maven将读取该文件。您的机器上是否有多个JDK?还请发布Maven-compiler-plugin的配置。运行mvn enforcer:在应用MRZ解决方案后显示信息。
<requireJavaVersion>
<version>[1.7,)</version>
</requireJavaVersion>
export JAVA_HOME=/Library/Java/JavaVirtualMachines/{your-jdk-here}/Contents/Home