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


Reply via email to