当前位置: 首页 > 知识库问答 >
问题:

如何使用GWT maven插件编译测试源代码中包含的GWT模块?

厉文栋
2023-03-14

我试图运行GWT编译与maven通过插件:gwt-maven-plugin,但GWT模块包含在测试源路径,即:src/test/java。插件抱怨找不到GWT模块。

但是,当使用GWT类DevMode通过Eclipse启动文件使用该模块时,该模块工作良好。为什么gwt maven插件找不到gwt模块?

该项目包含2个Gwt模块,1个GwtTotalProd包含在主要来源中,一个GwtTotalTest包含在测试来源中。gwt maven插件能够构建GWTTototalProd,但不能构建GwtTotalTest,为什么(两者都可以通过Eclipse启动文件正常运行)?我尝试在构建pom中包含测试源(见下文),但没有成功。

查看maven调试输出(-X开关),我可以理解它找不到它,因为GWT SDK执行包含src/main/java,但不包含src/test/java,并且不包括插件中定义的依赖项。那么,如何告诉插件查看测试源路径呢?

我可以通过创建一个额外的测试/开发项目来完成它,该项目包括主源代码中的GwtTotalTest(我为其他项目这样做),但在这种情况下,它是不需要的,因为它将是一个只有Gwt配置文件的空项目;)...或者我应该把它和另一个专家阶段联系起来?而不是目标编译我尝试了目标测试(测试编译似乎不起作用,maven说它不能找到目标int he p lugin),但也没有运气...

我正在使用插件版本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>

共有1个答案

林意蕴
2023-03-14

该插件不提供此功能。正如您所注意到的,如果这样做的话,(可能)这将是一个testCompile目标。

但有几种方法可以做到这一点:

  • 如您所述,使用单独的Maven模块
 类似资料:
  • 我正在尝试学习java的这个新GWT部分。。。 我做了我的第一个简单的应用程序 我命名了 我的模块:-HelloWorld 我收到以下错误: 2014年4月18日下午4:00:53爪哇。util。首选项。WindowsPreferences警告:无法在根0x8000002处打开/创建prefs根节点Software\JavaSoft\prefs。Windows RegCreateKeyEx(…)返

  • 我一直试图在使用 Pax 考试创建的 OSGI 容器中运行 JMH 基准测试(类似于此 SO 答案中描述的方式,但也将 Pax 考试放入其中)。但是,在加载编译期间创建的 JMH 生成的资源文件时遇到了一些问题。 编译完测试后,可以在< code>target/test-classes目录中找到以下内容: 在测试中,我使用了一些代码(我无法更改),这些代码(有效地)查找文件,如下所示: 运行失败(

  • 我正在使用Maven构建我的项目。我目前将测试分为不同的层次结构: 单元测试- 这里是我的部分: <代码> 我尝试了,它运行所有的测试——单元测试、集成测试和外部测试。但是,对于默认测试套件,我只想运行单元测试。 我如何在Maven中实现这一点? 裁判:

  • 有时,我们需要从源代码重新编译一个Kali包.幸运的是用APT下载源代码包,进行必要的修改后再用Debian工具重新编译是如此的简单.此例中,为了添加额外的Mifare Key硬编码到mifare格式化工具,我们将重新编译libfreefare这个包. 下载包的源代码 # Get the source package apt-get source libfreefare cd libfreefar

  • 问题内容: 主要问题 我想做的很简单。否则,您会认为。但是,没有任何工作正常。 要求: 使用maven,使用AspectJ编译器编译Java 1.6项目。 注意: 我们的代码无法使用javac进行编译。也就是说,如果未编织方面,则编译将失败(因为我们拥有可以软化异常的方面)。 2011年 2月21日 更新: 对此有两种同等可行的解决方案(两种情况都将 AspectJ-maven-plugin 与

  • 我有一个使用GWT2.7.0的GWT项目,并且正在使用Maven。该应用程序正在正确编译和运行,然而,我正在努力使GWT的超级开发模式正常工作。当我用 超级开发模式正确启动,编译,最新的更改显示在浏览器中。但是,当我按compile bookmarklet重新编译GWT代码时,重新编译正确完成,浏览器刷新,但不包括我对客户机/GWT java文件所做的任何后续更改。 当启动GWT Super De