gpt4 book ai didi

gwt - gwt :run-codeserver 内存不足

转载 作者:行者123 更新时间:2023-12-04 05:15:31 26 4
gpt4 key购买 nike

我有一个大型 GWT 应用程序,我想通过 super 开发模式进行测试。

运行应用程序时

mvn gwt:run-codeserver

它将编译 OK 并提供服务器的 URL。此时,我在 Web 浏览器中启动我的应用程序并尝试使用书签再次编译它。第二次编译会带来一系列内存错误,例如:
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 进程分配更多内存已不是什么 secret 。我无法解决的是如何做到这一点。

我的 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

我试过用 maven 执行
mvn -Dgwt.extraJvmArgs=-Xmx2048M gwt:run-codeserver

我还使用 Oracle JDK 和 Fedora 提供的开源 JDK 进行了尝试。

没有任何区别。我在这里做错了什么?

更新

我可以确认这是 Maven 插件的问题,而不是代码的问题。使用 IntelliJ 对 super 开发模式的内置支持来运行项目允许我编译和重新编译应用程序就好了。所以这归结为知道增加 Maven 插件也可以访问的内存的正确方法。这显然不是我上面尝试过的方法之一......

最佳答案

好吧,所以这是我的错。 POM.XML 有一些针对配置文件编译时使用的 gwt 插件的设置,其中正确配置了内存设置,然后是另一组与配置文件无关的 gwt 插件设置(我没有注意到)。

所以当我编译一个特定的配置文件(应用服务器)时,一切都很好。正在应用配置文件中定义的设置,一切都如您所愿。但是,当我在没有设置任何配置文件的 superdevmode 中运行时,除了我在命令行上设置的任何内容之外,还使用了第二个不太具体的设置。

我最终使用 -X 调试了问题maven 标志,它转储出 gwt 插件实际使用的配置。如果有人遇到同样的问题,请查找类似于以下示例的输出。从中您可以知道最终应用了什么设置,然后您可以使用它来找出设置的位置。

[DEBUG] --- exit fork of org.jboss.pressgang.ccms:pressgang-ccms-ui:1.0-SNAPSHOT for org.codehaus.mojo:gwt-maven-plugin:2.5.1-rc1:run-codeserver (default-cli) ---
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: org.codehaus.mojo:gwt-maven-plugin:2.5.1-rc1:run-codeserver (default-cli)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<bindAddress>${gwt.bindAddress}</bindAddress>
<codeServerPort>${gwt.codeServerPort}</codeServerPort>
<extraJvmArgs default-value="-Xmx1024m">-Xmx1024m</extraJvmArgs>
<gen default-value="${project.build.directory}/.generated">${gwt.gen}</gen>
<genParam default-value="true">${gwt.genParam}</genParam>
<generateDirectory default-value="${project.build.directory}/generated-sources/gwt"/>
<gwtSdkFirstInClasspath default-value="false">${gwt.gwtSdkFirstInClasspath}</gwtSdkFirstInClasspath>
<inplace default-value="false">${gwt.inplace}</inplace>
<jvm>${gwt.jvm}</jvm>
<localRepository>${localRepository}</localRepository>
<logLevel default-value="INFO">INFO</logLevel>
<module>${gwt.module}</module>
<persistentunitcache>${gwt.persistentunitcache}</persistentunitcache>
<persistentunitcachedir>${gwt.persistentunitcachedir}</persistentunitcachedir>
<pluginArtifacts>${plugin.artifacts}</pluginArtifacts>
<project>${project}</project>
<remoteRepositories>${project.remoteArtifactRepositories}</remoteRepositories>
<style default-value="OBF">${gwt.style}</style>
<version>${plugin.version}</version>
<warSourceDirectory default-value="${basedir}/src/main/webapp"/>
<webappDirectory default-value="${project.build.directory}/${project.build.finalName}">${gwt.war}</webappDirectory>
</configuration>

关于gwt - gwt :run-codeserver 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14330780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com