如何更改传递给在Windows系统上执行的mvn
可执行文件的默认参数,而无需修改每个安装或手动创建备用启动脚本(或者以非便携方式“硬编码”我的首选项)?为了清楚起见,我不接受外部方法,如控制台别名或使用快捷方式或文件系统链接。我要求一种特定于Maven的可移植方式来描述我的Windows机器上所有Maven执行的默认启动参数。
答案 0 :(得分:1)
就像MAVEN_OPTS
允许您将命令行参数传递给用于运行Maven的JVM一样,MAVEN_CMD_LINE_ARGS
是一个环境变量,允许您将命令行参数直接传递给Maven本身(但仅限于视窗)。与修改单个Maven安装或项目级别的文件和设置(例如通过settings.xml或maven.config)不同,MAVEN_CMD_LINE_ARGS
允许您将命令行参数传递给使用提供的启动启动的任何Maven安装脚本(在Windows上,脚本是“mvn.cmd”和“mvnDebug.cmd”)。
例如,在我的Windows开发计算机上,我已将MVN_CMD_LINE_ARGS
设置为
--show-version --global-settings %M2_CONF%\settings.xml --global-toolchains %M2_CONF%\toolchains.xml --define settings.security=%M2_CONF%\security-settings.xml --fail-fast --update-snapshots --strict-checksums --define maven.artifact.threads=8
。
我可以使用这种内置方法来实现标准化交叉安装配置的目标,而不必放置别名或创建自己的启动脚本。将MVN_CMD_LINE_ARGS
设置为该值,执行
mvn
实际上就像执行
一样 mvn --show-version --global-settings %M2_CONF%\settings.xml --global-toolchains %M2_CONF%\toolchains.xml --define settings.security=%M2_CONF%\security-settings.xml --fail-fast --update-snapshots --strict-checksums --define maven.artifact.threads=8
。
现在,请注意我说我认为这只能在Windows上运行。虽然Linux Bash脚本包含一个名为MVN_CMD_LINE_ARGS
的变量的导出,但它们不会将其作为参数传递给mvn
可执行文件。结果是,在Windows和Linux上,您可以在执行后使用MVN_CMD_LINE_ARGS
来确定用于调用mvn
的参数,但只有在Windows上才能使用MVN_CMD_LINE_ARGS
来指示将使用哪些参数来调用mvn
。据我所知,这种行为可能并非有意,所以我不建议以批评的方式使用它。似乎有一种项目特定的方法来配置mvn
执行论证,方法是将它们放入项目目录结构中的"./.mvn/maven.config"
文件中。