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

Izb*_*gen 5 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`
Run Code Online (Sandbox Code Playgroud)

在该文件中,它仍然指向已安装的 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"

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

Nam*_*man 5

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

vi ~/.mavenrc
Run Code Online (Sandbox Code Playgroud)

有一些输入,例如:

export PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)

我在 Windows 10 上运行

可以使用%HOME%\mavenrc.bat适当的定义创建一个类似的文件(尚未尝试过)。

编辑:感谢@Robert 指出这一点,对于 Windows 来说

%USERPROFILE%\mavenrc_pre.cmd
Run Code Online (Sandbox Code Playgroud)

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