2010-11-07 10 views
4

J'ai besoin de Maven d'installation pour:Comment pouvez-vous emballer un module GWT en tant que fichier Jar avec Maven?

a) compilez le module GWT

b) copier les fichiers * .java dans le pot (il peut être importé dans un autre module GWT)

c) copier le résultat de l'étape de compilation dans le pot (afin qu'il puisse être utilisé sur un serveur tel quel)

Est-ce que quelqu'un sait comment cela peut être fait?

L'idée de base est que je veux découpler mon projet GWT de mon projet Spring MVC et supprimer toutes les dépendances que l'application Spring pourrait avoir sur les plug-ins GWT &.

De cette façon, je peux utiliser les modules GWT en tant que bibliothèques javascript pures et les charger avec org.springframework.js.resource.ResourceServlet directement à partir des fichiers Jar tout en conservant la flexibilité de réutiliser des modules dans d'autres projets GWT.

Toute aide serait appréciée.

Répondre

2

Je joins la solution que je suis venu avec tant d'autres peuvent l'utiliser:

<!-- Set the output directory to something gwt:run can use in hosted mode --> 
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> 
      <finalName>gwt-build-name</finalName> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>gwt-maven-plugin</artifactId> 
        <version>${gwt.version}</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>compile</goal> 
           <goal>test</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> 
        </configuration> 
       </plugin> 
       <!-- Attach the resources plugin to the prepare-package phase to include the host page & generated javascript files --> 
       <plugin> 
        <artifactId>maven-resources-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>package-generated-javascript</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
           <!-- shove everything the compiler produced into the JAR/META-INF/ folder so that Spring resourceServlet can find it --> 
           <outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory> 
           <resources> 
            <resource> 
             <directory>${project.build.directory}/${project.build.finalName}</directory> 
             <includes> 
              <include>org.yournamehere.Main/**</include> 
             </includes> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
         <execution> 
          <id>include-host-page</id> 
          <phase>compile</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
          <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory> 

           <resources> 
            <resource> 
             <directory>${basedir}/src/main/webapp</directory> 
             <includes> 
              <include>**</include>           
             </includes> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

Ce que le ci-dessus est de changer le répertoire de sortie pour cibler/finalName afin que tout se retrouve dans le même répertoire et attachez le plugin resources à la compilation, prepare-package phases pour copier la sortie du compilateur GWT dans le répertoire de construction. Une fois que tout est là, il finira dans le pot final par défaut.

De cette façon, le répertoire de construction contient tout ce que le mode hébergé doit exécuter et tout ce dont le servlet de ressources Spring a besoin pour servir le module GWT sans aucune dépendance directe de GWT.