我怎樣才能改變傳遞到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. 如何在MVVM中指定命令綁定範圍?
- 3. Windows:如何在命令提示符下指定多行命令?
- 4. 在命令行參數中指定nil
- 5. 用Rake執行系統命令外面包範圍
- 6. 系統參數超出範圍例外
- 7. 管理系統範圍的參數C
- 8. 如何訪問Windows命令行參數?
- 9. 如何將命令行參數表達式指定爲maven-help-plugin?
- 10. 指定多個命令行參數
- 11. 從命令行參數指定
- 12. Python命令行參數(Windows)
- 13. 如何在build.sbt中指定命令行參數
- 14. 如何在命令行中指定RSpec「語法」參數?
- 15. 如何在Xcode 4中指定命令行參數?
- 16. 角指令範圍:設定
- 17. 在PostgreSQL函數中使用參數運行系統命令
- 18. 如何在POM文件中指定maven命令行選項?
- 19. 運行命令範圍
- 20. 指令範圍
- 21. 使用系統命令傳遞參數
- 22. 如何參數傳遞給系統命令在Perl
- 23. AngularJS奇數指令範圍的行爲
- 24. Python。如何執行系統命令(Windows)avioding控制檯?出現
- 25. 傳遞命令行參數在Ansible角色的系統腳本?
- 26. 在幫助系統中註冊命令行參數:Boost-Build
- 27. 從命令提示符指定命令行參數
- 28. Angular JS指令範圍變量關係
- 29. 必須將Windows系統區域設置爲系統範圍?
- 30. Maven命令行參數vs pom屬性