我有一個很大的GWT應用程序,我想通過超級開發模式進行測試。用gwt運行內存不足:運行代碼服務器
當
mvn gwt:run-codeserver
運行的應用程序,將編譯OK,並提供服務器的URL。此時,我在Web瀏覽器中啓動我的應用程序,並嘗試再次使用bookmarklets進行編譯。這第二個編譯帶來了一系列類似的內存錯誤:
Caused by: java.lang.OutOfMemoryError: Java heap space
...
[ERROR] Out of memory; to increase the amount of memory, use the -Xmx flag at startup (java -Xmx128M ...)
因此,這不是什麼祕密,我需要分配更多的內存來運行服務器的Java進程。我無法解決的是如何做到這一點。
我已經在我的pom.xml以下
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.maven.version}</version>
<configuration>
<extraJvmArgs>-Xmx2048M -Xms1024M -Xss1024k -XX:MaxPermSize=256M -XX:PermSize=128M</extraJvmArgs>
</configuration>
</plugin>
我MAVEN_OPTS環境變量設置爲
MAVEN_OPTS=-Xmx2048M
我試圖執行行家與
mvn -Dgwt.extraJvmArgs=-Xmx2048M gwt:run-codeserver
我有也使用Oracle JDK和Fedora提供的開源JDK進行了嘗試。
沒有什麼區別。我在這裏做錯了什麼?
UPDATE
我可以證實,這是與Maven插件的問題,而不是代碼。使用支持超級開發模式的IntelliJ來運行項目,可以讓我編譯和重新編譯應用程序。所以這可以歸結爲知道增加Maven插件訪問內存的正確方法。這顯然不是我上面試過的方法之一...
這是一個很大的應用程序。即超過25個屏幕或至少10K行代碼? – SSR
它使用Errai並綁定到許多JAX-RS接口,因此它最終成爲一個大型應用程序。 – Phyxx
要排除編碼問題,請減小應用程序大小(放下屏幕數量)。從5開始繼續增加應用程序屏幕數量。如果它在特定的「數量」屏幕上打破。然後是「模塊化」應用程序開發環境的時間。 – SSR