我想知道是否有可能以類似的語法指定Maven的內存邊界指定Maven的內存參數:無需設置MAVEN_OPTS環境變量
mvn -Dtest=FooTest -DXmx=512M clean test
我試過幾個變化,至今未果。
我知道MAVEN_OPTS環境變量,但我想避免這種情況。
與上述問題相關,很高興知道是否有可能以類似的方式指定插件的內存行爲,以便它使用重寫的內存量分配jvm(最終覆蓋pom插件配置中的<argLine>
參數(如果存在))
我想知道是否有可能以類似的語法指定Maven的內存邊界指定Maven的內存參數:無需設置MAVEN_OPTS環境變量
mvn -Dtest=FooTest -DXmx=512M clean test
我試過幾個變化,至今未果。
我知道MAVEN_OPTS環境變量,但我想避免這種情況。
與上述問題相關,很高興知道是否有可能以類似的方式指定插件的內存行爲,以便它使用重寫的內存量分配jvm(最終覆蓋pom插件配置中的<argLine>
參數(如果存在))
您可以配置surefire插件以使用更多內存。看看 Strange Maven out of memory error。
更新: 如果你想設置從參數命令行拿在Maven安裝目錄下的{{mvn.bat}}(或{{MVN}} shell腳本)看看。它與命令行中指定的其他選項一起使用。
下一種可能性是設置surefire插件並使用命令行中指定的屬性,例如, mvn ... -Dram=512
和
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Xms${ram}m -Xmx${ram}m</argLine>
</configuration>
</plugin>
要指定最大內存(不通過MAVEN_OPTS原先要求的),你可以做到以下幾點:
mvn clean install -DargLine="-Xmx1524m"
這實際上並非如此。如果你使用[jvisualvm](https://visualvm.java.net/),你甚至已經在你的JDK中(在bin目錄下),你會發現這個參數並不適用於JVM,而是作爲一個系統屬性argLine = -Xmx1524m。 – user2241895
這不是真的,'argLine'隻影響爲運行測試而創建的分支進程(Surefire),而不是用於編譯等的實際進程。而MAVEN_OPTS'影響所有內容。 – Kidburla
由於Maven的3.3.1也可以指定一個默認在${maven.projectBasedir}/.mvn/jvm.config
這裏記載:https://maven.apache.org/docs/3.3.1/release-notes.html#JVM_and_Command_Line_Options
你好阿姆拉,謝謝你的回覆。正如我在文章中提到的,我有興趣將內存設置指定爲mvn命令的參數。如果可能的話,對於mvn本身或者surfire插件。歡呼聲 – Ghiro
看到我的更新... – amra