optimizing GWT compilation to speed up build in dev environments

This commit is contained in:
simonbrandhof 2011-01-13 19:13:16 +01:00
parent c34c1bc926
commit dff2f68c8d
15 changed files with 200 additions and 27 deletions

View File

@ -51,16 +51,6 @@
</testResources>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<configuration>
<excludes>
<!-- GWT classes -->
<exclude>**/client/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
@ -68,20 +58,18 @@
<execution>
<configuration>
<modules>
<module>org.sonar.plugins.core.ui.pageselector.PageSelector</module>
<module>org.sonar.plugins.core.clouds.GwtClouds</module>
<module>org.sonar.plugins.core.violationsviewer.ViolationsViewer</module>
<module>org.sonar.plugins.core.coverageviewer.CoverageViewer</module>
<module>org.sonar.plugins.core.defaultsourceviewer.GwtDefaultSourceViewer</module>
<module>org.sonar.plugins.core.duplicationsviewer.DuplicationsViewer</module>
<module>org.sonar.plugins.core.testdetailsviewer.TestsViewer</module>
<module>org.sonar.plugins.core.hotspots.GwtHotspots</module>
<module>org.sonar.plugins.core.ui.pageselector.PageSelector${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.clouds.GwtClouds${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.violationsviewer.ViolationsViewer${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.coverageviewer.CoverageViewer${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.defaultsourceviewer.GwtDefaultSourceViewer${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.duplicationsviewer.DuplicationsViewer${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.testdetailsviewer.TestsViewer${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.core.hotspots.GwtHotspots${gwt.permutationSuffix}</module>
</modules>
<skip>${skipGwt}</skip>
<webappDirectory>${project.build.directory}/classes</webappDirectory>
<!-- do not break on two lines -->
<extraJvmArgs>-Xmx512m -Dgwt.jjs.permutationWorkerFactory=com.google.gwt.dev.ThreadedPermutationWorkerFactory</extraJvmArgs>
<extraJvmArgs>${gwt.extraJvmArgs}</extraJvmArgs>
</configuration>
<goals>
<goal>compile</goal>
@ -91,4 +79,19 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<property>
<name>dev</name>
</property>
</activation>
<properties>
<gwt.permutationSuffix>Dev</gwt.permutationSuffix>
<gwt.extraJvmArgs>-Xmx512m -Xss1024k -Dgwt.draftCompile=true</gwt.extraJvmArgs>
</properties>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,13 @@
<module rename-to="org.sonar.plugins.core.clouds.GwtClouds">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.api.web.gwt.Sonar"/>
<stylesheet src="clouds.css"/>
<entry-point class="org.sonar.plugins.core.clouds.client.GwtClouds"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,12 @@
<module rename-to="org.sonar.plugins.core.coverageviewer.CoverageViewer">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.gen2.table.Table"/>
<entry-point class="org.sonar.plugins.core.coverageviewer.client.CoverageViewer"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,12 @@
<module rename-to="org.sonar.plugins.core.defaultsourceviewer.GwtDefaultSourceViewer">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.gen2.table.Table"/>
<entry-point class="org.sonar.plugins.core.defaultsourceviewer.client.GwtDefaultSourceViewer"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,15 @@
<module rename-to="org.sonar.plugins.core.duplicationsviewer.DuplicationsViewer">
<inherits name="com.google.gwt.xml.XML"/>
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.gen2.table.Table"/>
<stylesheet src="DuplicationsViewer.css"/>
<entry-point class="org.sonar.plugins.core.duplicationsviewer.client.DuplicationsViewer"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,12 @@
<module rename-to="org.sonar.plugins.core.hotspots.GwtHotspots">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.i18n.I18N"/>
<stylesheet src="hotspots.css"/>
<entry-point class="org.sonar.plugins.core.hotspots.client.GwtHotspots"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,15 @@
<module rename-to="org.sonar.plugins.core.testdetailsviewer.TestsViewer">
<inherits name="com.google.gwt.xml.XML"/>
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.gen2.table.Table"/>
<stylesheet src="TestsViewer.css"/>
<entry-point class="org.sonar.plugins.core.testdetailsviewer.client.TestsViewer"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,14 @@
<module rename-to="org.sonar.plugins.core.ui.pageselector.PageSelector">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="com.google.gwt.i18n.I18N"/>
<inherits name="org.sonar.api.web.gwt.Sonar"/>
<inherits name="org.sonar.Sonar"/>
<stylesheet src="pageselector.css" />
<entry-point class="org.sonar.plugins.core.ui.pageselector.client.PageSelector"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,13 @@
<module rename-to="org.sonar.plugins.core.violationsviewer.ViolationsViewer">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<inherits name="com.google.gwt.gen2.table.Table"/>
<inherits name="com.google.gwt.i18n.I18N"/>
<entry-point class="org.sonar.plugins.core.violationsviewer.client.ViolationsViewer"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -66,23 +66,23 @@
</configuration>
</plugin>
<plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<modules>
<module>org.sonar.plugins.design.ui.lcom4.Lcom4Tab</module>
<module>org.sonar.plugins.design.ui.page.DesignPage</module>
<module>org.sonar.plugins.design.ui.dependencies.DependenciesTab</module>
<module>org.sonar.plugins.design.ui.libraries.LibrariesPage</module>
<module>org.sonar.plugins.design.ui.lcom4.Lcom4Tab${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.design.ui.page.DesignPage${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.design.ui.dependencies.DependenciesTab${gwt.permutationSuffix}</module>
<module>org.sonar.plugins.design.ui.libraries.LibrariesPage${gwt.permutationSuffix}</module>
</modules>
<skip>${skipGwt}</skip>
<webappDirectory>${project.build.directory}/classes</webappDirectory>
<!-- do not break on two lines -->
<extraJvmArgs>-Xmx512m -Dgwt.jjs.permutationWorkerFactory=com.google.gwt.dev.ThreadedPermutationWorkerFactory</extraJvmArgs>
<extraJvmArgs>${extraJvmArgs}</extraJvmArgs>
</configuration>
<goals>
<goal>compile</goal>
@ -111,4 +111,19 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<property>
<name>dev</name>
</property>
</activation>
<properties>
<gwt.permutationSuffix>Dev</gwt.permutationSuffix>
<gwt.extraJvmArgs>-Xmx512m -Xss1024k -Dgwt.draftCompile=true</gwt.extraJvmArgs>
</properties>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,12 @@
<module rename-to="org.sonar.plugins.design.ui.dependencies.DependenciesTab">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<stylesheet src='dependencies-tab.css'/>
<entry-point class="org.sonar.plugins.design.ui.dependencies.client.DependenciesTab"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,11 @@
<module rename-to="org.sonar.plugins.design.ui.lcom4.Lcom4Tab">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<stylesheet src="lcom4.css"/>
<entry-point class="org.sonar.plugins.design.ui.lcom4.client.Lcom4Tab"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,11 @@
<module rename-to="org.sonar.plugins.design.ui.libraries.LibrariesPage">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<stylesheet src="libraries.css"/>
<entry-point class="org.sonar.plugins.design.ui.libraries.client.LibrariesPage"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -0,0 +1,11 @@
<module rename-to="org.sonar.plugins.design.ui.page.DesignPage">
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.json.JSON"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="org.sonar.Sonar"/>
<stylesheet src="design.css"/>
<entry-point class="org.sonar.plugins.design.ui.page.client.DesignPage"/>
<!-- optimization of dev environments -->
<set-property name="user.agent" value="gecko1_8" />
</module>

View File

@ -89,6 +89,10 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.min.version>2.0</maven.min.version>
<jdk.min.version>1.5</jdk.min.version>
<!-- default GWT configuration. It's overridden by the profile 'dev' to speed up compilation in dev environments-->
<gwt.permutationSuffix></gwt.permutationSuffix>
<gwt.extraJvmArgs>-Xmx512m -Xss1024k</gwt.extraJvmArgs>
</properties>
<build>