【问题标题】:gwt maven war plugin configuration problemgwt maven war插件配置问题
【发布时间】:2011-06-01 10:34:48
【问题描述】:

我正在用 maven 开发一个 gwt 应用程序。在这个我使用 Maven 战争插件。一切正常。当我给出 mvn install 命令时,它会在目标文件夹中构建 abc.war 文件。但它不会将已编译的 javascript 文件(target 中的“module1”和“module2”目录)复制到 war 目录。我想在war目录中获取新编译的javascript文件。如何做到这一点?

pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>example</groupId>
<artifactId>example</artifactId>
<packaging>war</packaging>
<version>12</version>
<name>gwt-maven-archetype-project</name>

<properties>
    <!-- convenience to define GWT version in one place -->
    <gwt.version>2.1.0</gwt.version>
    <noServer>false</noServer>
    <skipTest>true</skipTest>
    <gwt.localWorkers>1</gwt.localWorkers>
    <JAVA_HOME>C:\Program Files\Java\jdk1.6.0_22</JAVA_HOME>
    <!-- convenience to define Spring version in one place -->      
</properties>

<dependencies>
    <!-- Required dependencies-->
</dependencies>
<build>
    <finalName>abc</finalName>
    <outputDirectory>war/WEB-INF/classes</outputDirectory>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <verbose>true</verbose>
                <executable>${JAVA_HOME}\bin\java.exe</executable>
                <compilerVersion>1.6</compilerVersion>
                <source>1.6</source>
                <target>1.6</target>                                            
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>       
            <version>2.1.0</version>        
            <executions>
                <execution>
                    <goals>

                        <goal>compile</goal>
                        <goal>generateAsync</goal>
                        <goal>mergewebxml</goal>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <servicePattern>**/client/**/*Service.java</servicePattern>
                <noServer>${noServer}</noServer>
                <noserver>${noServer}</noserver>
                <modules>
                <module>com.abc.example.Module1</module>
                <module>com.abc.example.Module2</module>
                </modules>
                <runTarget>com.abc.example.Module1/module1.jsp</runTarget> 
                <port>8080</port>
                <extraJvmArgs>-Xmx1024m -Xms1024m -Xss1024k -Dgwt.jjs.permutationWorkerFactory=com.google.gwt.dev.ThreadedPermutationWorkerFactory</extraJvmArgs>
            <hostedWebapp>war</hostedWebapp>
              <warSourceDirectory>${basedir}/war</warSourceDirectory>
               <webXml>${basedir}/war/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <configuration>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1-beta-1</version>
            <configuration>
                <warSourceDirectory>${basedir}/war</warSourceDirectory>
                 <webXml>${basedir}/war/WEB-INF/web.xml</webXml>
                <!--<webXml>src/main/webapp/WEB-INF/web.xml</webXml>-->
                <containerConfigXML>war/WEB-INF/classes/context/context.xml</containerConfigXML>
                <warSourceExcludes>.gwt-tmp/**</warSourceExcludes>                                              
            </configuration>
        </plugin>

           <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4.2</version>
            <configuration>
                <argLine>-Xmx1024m</argLine>
                 <skipTests>${skipTest}</skipTests>
            </configuration>
        </plugin>
         <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>war/module1</directory>
                    </fileset>

                    <fileset>
                        <directory>war/module2</directory>
                    </fileset>
                    <fileset>
                        <directory>war/WEB-INF/lib</directory>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>               
            <excludes>
                <exclude>**/public/resources/**</exclude>
                <exclude>**/public/images/**</exclude>
            </excludes>             
            <filtering>true</filtering>
        </resource>
    </resources>
    <filters>
        <filter>src/main/resources/build/build-${env}.properties</filter>
    </filters>
</build>
<profiles>
    <profile>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>


</profiles>
<reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>

【问题讨论】:

    标签: gwt maven mojo


    【解决方案1】:

    添加

     <inplace>true</inplace>  
    

    在 gwt-maven-plugin 配置标签中解决了这个问题。

    【讨论】:

    • 谢谢你,非常感谢
    【解决方案2】:

    虽然我不熟悉使用 maven 的基于 gwt 的应用程序,但 maven war 插件允许 adding of external web resources。您可以在 maven-war-plugin 部分添加类似于以下内容的内容。

          <webResources>
            <resource>
              <directory>${project.build.directory}</directory>              
              <targetPath>war</targetPath>
              <includes>
                <include>module1/**</include>
                <include>module2/**</include>
              </includes>
            </resource>
          </webResources>
    

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2020-09-30
      • 1970-01-01
      • 2011-01-14
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多