Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找Maven使用的Java选项_Java_Maven_Maven 3_Jvm Arguments_Java Opts - Fatal编程技术网

查找Maven使用的Java选项

查找Maven使用的Java选项,java,maven,maven-3,jvm-arguments,java-opts,Java,Maven,Maven 3,Jvm Arguments,Java Opts,我如何找到Maven正在使用哪些Java选项(Xmx、Xms、Xss等) 我发现设置它们的一种方法是通过environment MAVEN_OPTS。现在我想要一种方法来确保它得到了正确的设置 编辑:我认为这与不同,因为我不想看到环境变量的值。我更希望看到Maven实际使用了哪些设置,无论是来自env var、settings.xml还是其他方式 EDIT2:我还对为Maven构建设置Java选项的其他方法感兴趣也许用详细的调试输出(-debug,我想?)启动Maven会有帮助。否则,只需执行p

我如何找到Maven正在使用哪些Java选项(Xmx、Xms、Xss等)

我发现设置它们的一种方法是通过environment MAVEN_OPTS。现在我想要一种方法来确保它得到了正确的设置

编辑:我认为这与不同,因为我不想看到环境变量的值。我更希望看到Maven实际使用了哪些设置,无论是来自env var、settings.xml还是其他方式


EDIT2:我还对为Maven构建设置Java选项的其他方法感兴趣

也许用详细的调试输出(-debug,我想?)启动Maven会有帮助。否则,只需执行ps aux | grep java并检查流程的参数(假设为*nix)。

您可以在不同的点和级别(全局或通过插件配置)为Maven设置java选项:

插件配置:仅用于编译
使用编译应用程序代码和测试代码的配置,您可以通过
compileArgs
configuration条目设置所需的Xmx、Xms、Xss选项,该条目可用于和目标。一个官方的例子是可用的,其他答案如。
下面第三点也显示了一个示例

插件配置:仅用于测试执行
使用测试执行的配置,您可以通过目标的
argLine
configuration条目设置运行时使用的所需Java选项。官方示例可用。
下面第三点也显示了一个示例

插件配置:通过属性(和配置文件)
您可以将上述两个选项(如果是常见Java选项)组合为属性值,以传递给
compileArgs
argLine
配置条目,或者每个配置具有不同的属性(根据您的需要)

全局/项目配置:选项文件 自Maven 3.3.1以来,您可以在每个项目的
.mvn/jvm.config
文件中设置选项。它是MAVEN_选项的替代方案,并且范围更窄(每个项目)。然而,由于它是一个新的Maven特性,人们应该意识到它,否则故障排除和维护可能会受到影响

全局/环境配置:MAVEN_选择 Maven环境变量设置全局执行选项,但应用于共享该环境的所有Maven构建(即每个登录用户)

当使用
-X
选项(已启用调试)运行Maven时,将有以下输出作为构建的一部分:

[DEBUG] properties used {java.vendor=Oracle Corporation, ... , env.MAVEN_OPTS=-Xmx256M, ...

更新
毕竟,执行的
mvn
命令是一个操作系统脚本。在Windows中查看后,我发现可以使用
MAVEN\u BATCH\u ECHO
选项,如果启用该选项(值设置为
on
),将回显脚本执行的任何命令,因此也可以调用
java
命令,您可以查看您的选项(
MAVEN\u选择
)与传递给它的完整参数列表一起正确拾取

下面是我在Windows上测试的一个执行:

set MAVEN_BATCH_ECHO=on
set MAVEN_OPTS=-Xmx256M
mvn compile > output.txt  
注意:
output.txt
将包含大量文本,提供构建输出和额外的
echo
s执行。作为其中的一部分,它规定:

>"path_to_\jdk1.7\bin\java.exe" -Xmx256M -classpath "path_to\apache-maven-3.1.1\bin\..\boot\plexus-classworlds-2.5.1.jar" "-Dclassworlds.conf=path_to\apache-maven-3.1.1\bin\..\bin\m2.conf" "-Dmaven.home=path_to\apache-maven-3.1.1\bin\.." org.codehaus.plexus.classworlds.launcher.Launcher compile 
如您所见,
-Xmx256M
选项选择正确。如果其他操作系统的maven脚本不提供此选项,那么您可以简单地将其添加到脚本中(在执行
java
之前,显示命令的简单
echo
也就足够了)。
您可以在maven安装文件夹中的
bin
子文件夹下找到maven脚本


更新2

此外,由于Maven毕竟是一个Java工具,而且正如您从其脚本中看到的,它调用Java命令,您可以通过稍微更改Maven脚本并使用
jinfo
命令来查看本文中建议的所有可用选项,该命令将根据另一个命令真正为您提供答案。

可能的重复项您是否只对查看如何检查Maven使用了哪些选项或其他相同设置方式感兴趣选项?是的,我也对其他方式感兴趣,谢谢。我更新了我的答案,在底部检查,我找到了一种方法来检查选项是否被正确选择。希望这能有所帮助。此外,您可能希望它来自Java,它由Maven(在Java中开发)调用,因此结合我提出的方法应该会给您进一步的帮助。我会相应地更新我的答案
set MAVEN_BATCH_ECHO=on
set MAVEN_OPTS=-Xmx256M
mvn compile > output.txt  
>"path_to_\jdk1.7\bin\java.exe" -Xmx256M -classpath "path_to\apache-maven-3.1.1\bin\..\boot\plexus-classworlds-2.5.1.jar" "-Dclassworlds.conf=path_to\apache-maven-3.1.1\bin\..\bin\m2.conf" "-Dmaven.home=path_to\apache-maven-3.1.1\bin\.." org.codehaus.plexus.classworlds.launcher.Launcher compile