我怎样才能改变传递到Windows系统上执行的mvn
可执行文件的默认参数,而无需修改每次安装或手动创建的替代启动脚本(或其他“硬编码”在非移植的方式我的喜好)?要清楚,我不打开外部方法,如控制台别名或使用快捷方式或文件系统链接。我要求提供一种Maven特定的可移植方式来描述Windows机器上所有Maven执行的默认启动参数。如何在Windows系统范围指定Maven命令行参数?
回答
与MAVEN_OPTS
类似,您可以将命令行参数传递给用于运行Maven的JVM,MAVEN_CMD_LINE_ARGS
是一个环境变量,允许您直接将命令行参数传递给Maven本身(但仅在Windows上)。与修改单个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"
文件中。
- 1. 检查范围与命令行参数
- 2. 传递系统命令和命令行参数在Eclipse中
- 3. 如何在MVVM中指定命令绑定范围?
- 4. Windows:如何在命令提示符下指定多行命令?
- 5. 系统参数超出范围例外
- 6. 管理系统范围的参数C
- 7. 如何访问Windows命令行参数?
- 8. 如何将命令行参数表达式指定为maven-help-plugin?
- 9. 从命令行参数指定
- 10. Python命令行参数(Windows)
- 11. 角指令范围:设定
- 12. 如何在build.sbt中指定命令行参数
- 13. 如何在Xcode 4中指定命令行参数?
- 14. 在PostgreSQL函数中使用参数运行系统命令
- 15. 如何在POM文件中指定maven命令行选项?
- 16. 阅读maven命令行参数
- 17. Maven命令行参数vs pom属性
- 18. perl系统命令执行
- 19. 范围未定义在指令
- 20. 用于C++的Netbeans IDE如何指定命令行参数
- 21. JavaScript约定:如何为父范围指定参数
- 22. 如何运行Eclipse Maven使用命令行参数构建
- 23. AngularJs范围参考与指令
- 24. 如果未指定命令行参数,请使用命令行的目录
- 25. $范围的指令
- 26. 轨如何从轨道运行系统命令命令安全
- 27. 如何创建系统范围变量?
- 28. 如何设置系统范围的umask?
- 29. 系统分析中的系统范围
- 30. python:在给定列表上使用optparse而不是系统命令行参数