Maven gwt:将forks编译为不同的Xmx

时间:2014-07-01 13:33:56

标签: maven gwt out-of-memory vaadin

编辑:我解决了这个问题,将插件从“配置文件”部分移到了常规构建插件部分,即使我不知道如何在我的理解中工作,但在配置文件之外插件不是甚至定义,甚至不应该在正确的配置文件之外访问它。

我有一个使用Maven的Vaadin 6.8应用程序,它不再找到它的小部件集,所以我想重新编译小部件集,但是会因以下错误而失败:

[错误]信息:搜索痛点表.. [INFO] [错误]'jar:file:/home/username/.m2/repository/com/vaadin/vaadin/6.8.0/vaadin-6.8.0.jar!/ com / vaadin / terminal / gwt /中的错误客户机/ WidgetSet.java” [INFO] [ERROR]内部编译器错误 [INFO] java.lang.OutOfMemoryError:超出了GC开销限制 [INFO] org.apache.xerces.dom.DeferredDocumentImpl.getNodeObject(未知来源)

设置`export MAVEN_OPTS =“ - Xmx12000m”(只是为了确定)后,它分叉到另一个Xmx(512)并仍然得到错误(htop片段):

│  │     ├─ /opt/java/bin/java -Xmx12000m -classpath ...
│  │     ├─ /opt/java/jre/bin/java -Xmx512m -classpath ...

我的系统:Linux pcname 3.15.2-1-ARCH #1 SMP PREEMPT Fri Jun 27 07:41:19 CEST 2014 x86_64 GNU/Linux,8 GB RAM

P.S。:我还将localworkers设置为1并将fork设置为false,两者都不起作用。

编辑---回答托马斯: 我已经使用了extraJvMArgs。我在那里做错了吗?

    <profile>
        <id>compile-widgetset</id>
        <build>
            <plugins>
                <!-- Compile custom GWT components or widget dependencies with the GWT 
                    compiler -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <version>${gwt.plugin.version}</version>
                    <configuration>
                        <localWorkers>1</localWorkers>
                        <fork>false</fork>
                        <webappDirectory>src/main/webapp/VAADIN/widgetsets</webappDirectory>
                        <extraJvmArgs>-Xmx2000M -Xss1024k -XX:+UseConcMarkSweepGC</extraJvmArgs>
                        <runTarget>autosparql-tbsl</runTarget>
                        <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
                        <noServer>true</noServer>
                        <port>9090</port>
                        <compileReport>false</compileReport>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>resources</goal>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.google.gwt</groupId>
                            <artifactId>gwt-dev</artifactId>
                            <version>${gwt.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>com.google.gwt</groupId>
                            <artifactId>gwt-user</artifactId>
                            <version>${gwt.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-maven-plugin</artifactId>
                    <version>1.0.2</version>
                    <executions>
                        <execution>
                            <configuration>
                            </configuration>
                            <goals>
                                <goal>update-widgetset</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

P.S。:我现在使用“mvn -X gwt:compile”,它只显示默认的512M:

[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
[...]
  <extraJvmArgs default-value="-Xmx512m">${gwt.extraJvmArgs}</extraJvmArgs>

1 个答案:

答案 0 :(得分:1)

分叉JVM的-Xmx在gwt-maven-plugin配置中设置:http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html#extraJvmArgs 此处未使用MAVEN_OPTS