我知道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),除了更改环境变量?
答案 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