java的-D命令行參數
我們會用mvn啟動一個應用,如下的命令行:
- MAVEN_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m" mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
我們來解析一下這些命令行的意義.
-Dxxxx是java運行參數的語法
作用是配置一些環境變量,具體有哪些參數,參數有什么效果,和你用的實際環境、項目架構都有關
對,讓程序知道log_path代表什么,具體程序怎么用,那是程序的事了
System.getProperty(“propertyName”) 比如你的就是System.getProperty(“log_path”)就可以拿到了
java的main函數都具有String[] 參數。這個參數可以通過-d來傳遞。
log_path這個會被存放在System.getProperty()中,
Property 是繼承 hashtable的。可以通過System.getProperty(“log_path”)取得。
Java啟動參數
Java啟動參數共分為三類;
其一是標准參數(-),所有的JVM實現都必須實現這些參數的功能,而且向后兼容;
其二是非標准參數(-X),默認jvm實現這些參數的功能,但是並不保證所有jvm實現都滿足,且不保證向后兼容;
其三是非Stable參數(-XX),此類參數各個jvm實現會有所不同,將來可能會隨時取消,需要慎重使用;
mvn 命令行參數
mvn -v, –version 顯示版本信息;
mvn -V, –show-version 顯示版本信息后繼續執行Maven其他目標;
mvn -h, –help 顯示幫助信息; mvn -e, –errors 控制Maven的日志級別,產生執行錯誤相關消息;
mvn -X, –debug 控制Maven的日志級別,產生執行調試信息;
mvn -q, –quiet 控制Maven的日志級別,僅僅顯示錯誤;
mvn -Pxxx 激活 id 為 xxx的profile (如有多個,用逗號隔開);
mvn -Dxxx=yyy 指定Java全局屬性;
mvn -o , –offline 運行offline模式,不聯網更新依賴;
mvn -N, –non-recursive 僅在當前項目模塊執行命令,不構建子模塊;
mvn -pl, –module_name 在指定模塊上執行命令;
mvn -ff, –fail-fast 遇到構建失敗就直接退出;
mvn -fn, –fail-never 無論項目結果如何,構建從不失敗;
mvn -fae, –fail-at-end 僅影響構建結果,允許不受影響的構建繼續;
mvn -C, –strict-checksums 如果校驗碼不匹配的話,構建失敗;
mvn -c, –lax-checksums 如果校驗碼不匹配的話,產生告警;
mvn -U 強制更新snapshot類型的插件或依賴庫(否則maven一天只會更新一次snapshot依賴);
mvn -npu, –no-plugin-updates 對任何相關的注冊插件,不進行最新檢查(使用該選項使Maven表現出穩定行為,該穩定行為基於本地倉庫當前可用的所有插件版本);
mvn -cpu, –check-plugin-updates 對任何相關的注冊插件,強制進行最新檢查(即使項目POM里明確規定了Maven插件版本,還是會強制更新);
mvn -up, –update-plugins [mvn -cpu]的同義詞;
mvn -B, –batch-mode 在非交互(批處理)模式下運行(該模式下,當Mven需要輸入時,它不會停下來接受用戶的輸入,而是使用合理的默認值);
mvn -f, –file 強制使用備用的POM文件; mvn -s, –settings 用戶配置文件的備用路徑;
mvn -gs, –global-settings 全局配置文件的備用路徑;
mvn -emp, –encrypt-master-password 加密主安全密碼,存儲到Maven settings文件里;
mvn -ep, –encrypt-password 加密服務器密碼,存儲到Maven settings文件里;
mvn -npr, –no-plugin-registry 對插件版本不使用~/.m2/plugin-registry.xml(插件注冊表)里的配置