2013-04-24 45 views
1

我已经阅读了其他几个问题和答案,其中没有一个似乎对我有帮助。我正在尝试构建一个mgwt项目,这个项目会有很多排列组合,因此内存设置必须非常高。Maven Eclipse插件增加内存?

我使用maven4eclipse插件来构建以包装为目标,我的运行配置的JRE选项卡上,我设置了以下

vm args:-Xms1024m -Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=64m 

当尝试运行失败,并与该回来错误:

[ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.3.0-1:compile (default) on project: Command [[ 
[ERROR] **C:\Program Files\Java\jdk1.7.0_17\jre\bin\java -Xmx512m** -classpath "..others stuff" -logLevel INFO -style OBF -war "Branch(mobile)\Project\target\Mobile-webcontent" -localWorkers 8 
[ERROR] ]] failed with status 1 
[ERROR] -> [Help 1] 

这给我看我设置的参数没有被使用,我是否把它设置在错误的地方?

回答

4

样品POM文件。

<plugins> 
     <!-- GWT Maven Plugin --> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>gwt-maven-plugin</artifactId> 
      <dependencies> 
       <dependency> 
        <groupId>com.google.gwt</groupId> 
        <artifactId>gwt-user</artifactId> 
        <version>${gwt.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>com.google.gwt</groupId> 
        <artifactId>gwt-codeserver</artifactId> 
        <version>${gwt.version}</version> 
       </dependency>     
       <dependency> 
        <groupId>com.google.gwt</groupId> 
        <artifactId>gwt-dev</artifactId> 
        <version>${gwt.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>com.google.gwt</groupId> 
        <artifactId>gwt-servlet</artifactId> 
        <version>${gwt.version}</version> 
       </dependency> 
      </dependencies> 
      <!-- JS is only needed in the package phase, this speeds up testing --> 
      <executions> 
       <execution> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
       documentation at codehaus.org --> 
      <configuration> 
       <skip>true</skip> 
       <strict>true</strict> 
       <runTarget>app.html</runTarget> 
       <!-- Turning This on after understanding soyc --> 
       <!-- https://developers.google.com/web-toolkit/articles/fragment_merging --> 
       <!-- <fragmentCount>95</fragmentCount> --> 
       <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) --> 
       <!-- Turn This on for generating soyc. This does not work if closure 
        compiler is turned on. --> 
       <compileReport>false</compileReport> 
       <compilerMetrics>false</compilerMetrics> 
       <soycDetailed>false</soycDetailed> 
       <!-- End Generating SOYC --> 
       <disableCastChecking>true</disableCastChecking> 
       <disableClassMetadata>true</disableClassMetadata> 
       <enableClosureCompiler>true</enableClosureCompiler> 
       <optimizationLevel>9</optimizationLevel> 
       <style>${gwt.style}</style> 
       <module>${gwt.module}</module> 
       <encoding>${project.build.sourceEncoding}</encoding> 
       <logLevel>INFO</logLevel> 
       <!-- ERROR, WARN, INFO, TRACE, DEBUG, SPAM, or ALL). --> 
       <copyWebapp>true</copyWebapp> 
       <hostedWebapp>${project.build.directory}/${project.artifactId}</hostedWebapp> 
       <extraJvmArgs>-Xmx4096M -Xms1024M -XX:PermSize=128m -XX:MaxPermSize=256m</extraJvmArgs> 
       <!-- <extraJvmArgs>-Xmx1024M -Xms1024m -Xss32m -XX:PermSize=64m -XX:MaxPermSize=128m -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -DgeneratePom=true -XX:ReservedCodeCacheSize=128m -XX:+PrintCompilation -server</extraJvmArgs> --> 
       <extra>${project.build.directory}/gwt-extra</extra> 
       <deploy>${project.build.directory}/gwt-deploy</deploy> 
       <localWorkers>4</localWorkers> 
      </configuration> 
     </plugin> 
+0

我的问题是我的localWorkers从另一个项目中将pom设置设置为99。它导致更大的问题,因为它试图保留您为每个核心指定的内存。最终我将内存设置减少到了1024,并且增加了 – nmb1106 2013-05-02 19:19:15

+0

本地工作者的理想情况下,应该少于您拥有的核心/线程的数量:) – SSR 2013-05-03 04:39:35

2

gwt-maven-plugin分叉了一个JVM,并且不会继承用于运行Maven的JVM的设置。

如果您需要分叉JVM特定的JVM设置,你可以在你的POM,或-Dgwt.extraJvmArgs="-Xms1g -Xmx2g"在命令行中使用的gwt-maven-plugin<configuration><extraJvmArgs>设置。

见与配置对于大多数GWT编译器选项,包括JVM选项设置为GWT编译http://www.mojohaus.org/gwt-maven-plugin/compile-mojo.html#extraJvmArgs

+0

我的问题是我的localWorkers被设置为99从另一个项目拉pom设置。它导致更大的问题,因为它试图保留您为每个核心指定的内存。 最终我将内存设置减少到1024,本地工人减少到了6. – nmb1106 2013-05-02 19:19:54