Under GWT 1.6.x, when compiling multiple modules, specify them all in a single
invocation to the GWT Compiler
-------------------------------------------------------------------------------------------------------------
Key: MGWT-61
URL: http://jira.codehaus.org/browse/MGWT-61
Project: Maven 2.x GWT Plugin
Issue Type: Improvement
Affects Versions: 1.1
Environment: GWT 1.6.4, maven-gwt-plugin 1.1-SNAPSHOT, Linux
Reporter: Mark Renouf
GWT 1.6 can accept multiple modules as arguments to the Compiler, and will
compile each of them sequentially. This seems provide a significant boost even
withing a trivial project. There is likely savings from startup time of the
compiler, and possibly some internal caching from previous passes.
I have a sample project to demonstrate this. I've configured three GWT modules,
and specified them in the <modules> element. The following is the generated
compile.sh script:
#!/bin/bash
"/usr/lib/jvm/java-6-sun-1.6.0.13/jre/bin/java" -Xmx512m -cp
"/home/mark/.m2/repository/org/codehaus/mojo/gwt-maven-plugin/1.1-SNAPSHOT/gwt-maven-plugin-1.1-SNAPSHOT.jar":"/home/mark/Applications/gwt-linux-1.6.4/gwt-dev-linux.jar"
org.codehaus.mojo.gwt.fork.ForkBooter
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt.classpath"
com.google.gwt.dev.Compiler -gen
"/home/mark/workspace/aerva/gwt-1-6-example/target/.generated" -logLevel INFO
-style OBF -war
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1"
-localWorkers 2 com.example.app1.Module1
"/usr/lib/jvm/java-6-sun-1.6.0.13/jre/bin/java" -Xmx512m -cp
"/home/mark/.m2/repository/org/codehaus/mojo/gwt-maven-plugin/1.1-SNAPSHOT/gwt-maven-plugin-1.1-SNAPSHOT.jar":"/home/mark/Applications/gwt-linux-1.6.4/gwt-dev-linux.jar"
org.codehaus.mojo.gwt.fork.ForkBooter
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt.classpath"
com.google.gwt.dev.Compiler -gen
"/home/mark/workspace/aerva/gwt-1-6-example/target/.generated" -logLevel INFO
-style OBF -war
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1"
-localWorkers 2 com.example.app2.Module2
"/usr/lib/jvm/java-6-sun-1.6.0.13/jre/bin/java" -Xmx512m -cp
"/home/mark/.m2/repository/org/codehaus/mojo/gwt-maven-plugin/1.1-SNAPSHOT/gwt-maven-plugin-1.1-SNAPSHOT.jar":"/home/mark/Applications/gwt-linux-1.6.4/gwt-dev-linux.jar"
org.codehaus.mojo.gwt.fork.ForkBooter
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt.classpath"
com.google.gwt.dev.Compiler -gen
"/home/mark/workspace/aerva/gwt-1-6-example/target/.generated" -logLevel INFO
-style OBF -war
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1"
-localWorkers 2 com.example.app3.Module3
And the output of running it: (total: 38s)
running main class com.google.gwt.dev.Compiler with args [-gen,
/home/mark/workspace/aerva/gwt-1-6-example/target/.generated, -logLevel, INFO,
-style, OBF, -war,
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1,
-localWorkers, 2, com.example.app1.Module1]
Compiling module com.example.app1.Module1
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 12.524s
running main class com.google.gwt.dev.Compiler with args [-gen,
/home/mark/workspace/aerva/gwt-1-6-example/target/.generated, -logLevel, INFO,
-style, OBF, -war,
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1,
-localWorkers, 2, com.example.app2.Module2]
Compiling module com.example.app2.Module2
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 12.332s
running main class com.google.gwt.dev.Compiler with args [-gen,
/home/mark/workspace/aerva/gwt-1-6-example/target/.generated, -logLevel, INFO,
-style, OBF, -war,
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1,
-localWorkers, 2, com.example.app3.Module3]
Compiling module com.example.app3.Module3
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 13.293s
For GWT 1.6.x we can change it to:
#!/bin/bash
"/usr/lib/jvm/java-6-sun-1.6.0.13/jre/bin/java" -Xmx512m -cp
"/home/mark/.m2/repository/org/codehaus/mojo/gwt-maven-plugin/1.1-SNAPSHOT/gwt-maven-plugin-1.1-SNAPSHOT.jar":"/home/mark/Applications/gwt-linux-1.6.4/gwt-dev-linux.jar"
org.codehaus.mojo.gwt.fork.ForkBooter
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt.classpath"
com.google.gwt.dev.Compiler -gen
"/home/mark/workspace/aerva/gwt-1-6-example/target/.generated" -logLevel INFO
-style OBF -war
"/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1"
-localWorkers 2 com.example.app1.Module1 com.example.app2.Module2
com.example.app3.Module3
And the output: (total 23.1s)
running main class com.google.gwt.dev.Compiler with args [-gen,
/home/mark/workspace/aerva/gwt-1-6-example/target/.generated, -logLevel, INFO,
-style, OBF, -war,
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1,
-localWorkers, 2, com.example.app1.Module1, com.example.app2.Module2,
com.example.app3.Module3]
Compiling module com.example.app1.Module1
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 12.329s
Compiling module com.example.app2.Module2
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 6.165s
Compiling module com.example.app3.Module3
Compiling 1 permutations
Permutation compile succeeded
Linking into
/home/mark/workspace/aerva/gwt-1-6-example/target/gwt-1-6-example-1
Link succeeded
Compilation succeeded -- 4.703s
(PS: I've already filed a bug with GWT about the nesting of log output after
each module :-P)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email