我试图通过插件运行GWT编译:gwt-maven-plugin,但GWT模块包含在测试源路径中,即:src / test / java。插件抱怨它无法找到GWT模块。
但是,使用GWT类DevMode,通过Eclipse启动文件使用该模块时,该模块可以正常工作。 为什么gwt maven插件无法找到GWT模块?
该项目包含2个Gwt模块,其中包含1个主要来源的GwtTotalProd和包含在测试源中的GwtTotalTest。 gwt maven插件能够构建GwtTotalProd,但不能构建GwtTotalTest,为什么(两者都通过Eclipse启动文件运行良好)? 我尝试在构建pom中包含测试源(见下文),但没有运气。
查看maven调试输出(-X开关),我可以理解它无法找到它,因为GWT SDK执行包含src / main / java,而不是src / test / java,它不包括插件中定义的依赖项。 那么如何告诉插件查看测试源路径?
我可以通过创建一个额外的" test / dev"在主要源代码中包含GwtTotalTest的项目(我为其他项目执行此操作),但在这种情况下它不是所希望的,因为它只是一个只有Gwt配置文件的空项目;)... 或者我应该将它绑定到另一个maven阶段?而不是目标"编译"我尝试了目标"测试" (测试编译似乎没有用,maven说它无法找到他的目标),但也没有运气......
我正在使用插件版本2.7.0和配置maven:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<id>TotalProd</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<module>com.total.GwtTotalProd</module>
<mode>htmlunit</mode>
<draftCompile>false</draftCompile>
<disableClassMetadata>true</disableClassMetadata>
<compileReport>true</compileReport>
<warSourceDirectory>${gwt.war}</warSourceDirectory>
<webappDirectory>${gwt.output.total}</webappDirectory>
<gen>${gwt.output.total}/${gwt.gen}</gen>
<extra>${gwt.output.total}/${gwt.extra}</extra>
<fragmentCount>8</fragmentCount>
<extraJvmArgs>-Xms1G -Xmx1G -Xss1024k -Dgwt.persistentunitcache=false</extraJvmArgs>
</configuration>
</execution>
<execution>
<phase>compile</phase>
<id>TotalTest</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<module>com.total.GwtTotalTest</module>
<mode>htmlunit</mode>
<draftCompile>false</draftCompile>
<disableClassMetadata>true</disableClassMetadata>
<compileReport>false</compileReport>
<warSourceDirectory>${gwt.war}</warSourceDirectory>
<webappDirectory>${gwt.output.total.test}</webappDirectory>
<gen>${gwt.output.total.test}/${gwt.gen}</gen>
<extra>${gwt.output.total.test}/${gwt.extra}</extra>
<fragmentCount>8</fragmentCount>
<extraJvmArgs>-Xms1G -Xmx1G -Xss1024k -Dgwt.persistentunitcache=false</extraJvmArgs>
<dependencies>
<dependency>
<groupId>com.company.gwt</groupId>
<artifactId>total-gwt</artifactId>
<version>${version.gen}</version>
<classifier>test-sources</classifier>
</dependency>
<dependency>
<groupId>com.company.gwt</groupId>
<artifactId>total-gwt</artifactId>
<version>${version.gen}</version>
<type>test-jar</type>
</dependency>
</dependencies>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:1)
该插件无法提供此功能。正如您所指出的那样,如果确实如此,它可能会testCompile
目标。
有几种方法可以做到这一点:
maven-invoker-plugin
在构建期间启动Maven模块,其源包含在模块本身内(而不是在反应器构建中作为单独的模块)GWTTestCase
getModuleName()
返回com.total.GwtTotalTest
和,gwt:test
与productionMode
设置为true
history.pushState(null, null, 'index.php?'+urlstring +'query=true&file=index&module={$MODULE}&action={$MODULE}Ajax&ajax=true&search=true');
(以便在运行任何测试方法之前编译模块)。