如何在windows上硬编码maven使用的java

时间:2017-08-30 11:26:25

标签: java maven

我知道maven使用JAVA_HOME环境变量来启动自己。但由于缺乏管理权限(公司的安全政策),我无法改变这个变量。我安装了Oracle JRE,目前由maven使用。我在Windows 10上运行。

我想硬编码我的maven以使用特定的JDK文件夹来运行自己。我正在研究的一个解决方案是在$MAVEN_HOME\bin\mvn文件中对其进行硬编码,但我不能这样做。就像我在尝试添加类似的东西时一样:

set JAVA_HOME="E:\ProgramFiles\java\jdk8"
export JAVA_HOME="E:\ProgramFiles\java\jdk8"
JAVA_HOME=`E:\ProgramFiles\java\jdk8`

在该文件中,它仍然指向已安装的JRE,我可以从mvn -version命令的输出中看到。

  

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T22:39:06+03:00) Maven home: E:\ProgramFiles\apache-maven-3.5.0\bin\.. Java version: 1.8.0_131, vendor: Oracle Corporation Java home: C:\Program Files\Java\jre1.8.0_131 Default locale: ru_RU, platform encoding: Cp1251 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

问题是:如何从mvn更改mvn.cmd$MAVEN_HOME\bin文件以使用所需的硬编码JDK版本?或者是否有其他解决方案(因为我需要从任何地方运行mvn命令 - 它需要使用特定的jdk),除了更改环境变量?

2 个答案:

答案 0 :(得分:2)

在Linux中,您可以通过编辑/创建mavenrc文件来执行相同操作。

vi ~/.mavenrc

有一些输入,如:

export PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin
  

我在Windows 10上运行

%HOME%\mavenrc.bat创建的具有相应定义的类似文件(尚未尝试过)。

编辑 :感谢@Robert将其指出,对于Windows来说

%USERPROFILE%\mavenrc_pre.cmd

您需要修改/创建的文件。

答案 1 :(得分:0)

您不需要在Windows中使用export命令。 您可以做的是,编辑mvn.cmd文件并在文件开头定义您自己的MAVEN_JAVA_HOME。

set MAVEN_JAVA_HOME="E:\ProgramFiles\java\jdk8" 
echo %MAVEN_JAVA_HOME%

并将所有JAVA_HOME替换为mvn.cmd中的MAVEN_JAVA_HOME