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

GWT Maven多模块

姜兴业
2023-03-14

我创建了一个具有以下结构的GWT Maven多模块项目。

核心模块[包含活动、演示者、共享资源]核心。gwt。带入口点的xml

果心gwt。xml

<inherits name='com.google.gwt.user.User' />

<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->

<!--<inherits name='com.google.gwt.junit.JUnit' /> -->

<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->

<!--inherits name='com.google.gwt.user.theme.standard.Standard' /> -->
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- <stylesheet src="styles-global.css"/> -->

<!--GWT-QUERY -->
<!-- <inherits name='com.google.gwt.query.Query'/> -->



<!--SuperDev Mode -->

<!-- add-linker name="xsiframe"/> <set-configuration-property name="devModeRedirectEnabled" 
    value="true"/-->

<set-property name="user.agent" value="gecko1_8,safari" />

<!-- Other module inherits -->

<!-- We need the MVP stuff (Activity and Place -->
<!-- I am also using DepInj with Gin (Inject) -->
<!-- and Resource for client bundle and stuff (not used yet) -->

<inherits name="com.google.gwt.activity.Activity" />
<inherits name="com.google.gwt.place.Place" />
<inherits name="com.google.gwt.inject.Inject" />
<inherits name="com.google.gwt.resources.Resources" />
<inherits name="com.google.gwt.user.Debug" />
<inherits name="org.fusesource.restygwt.RestyGWT"/>

 <!-- gwtbootstrap3 -->
<inherits name="com.template.resources.CustomBootstrap"/>


<!-- Specify the app entry point class. -->
<entry-point class='com.template.core.client.template' />

<!-- Specify the paths for translatable code -->
<source path='client' />
<source path='shared' />

<!-- Form Factors -->
<inherits name="com.template.core.FormFactor" />

<!-- For JSON Ajax call -->
<inherits name="com.google.gwt.http.HTTP" />

<!-- For Logging Framework src: https://developers.google.com/web-toolkit/doc/latest/DevGuideLogging -->
<inherits name="com.google.gwt.logging.Logging" />
<set-property name="gwt.logging.enabled" value="FALSE" />

<define-configuration-property name="gin.ginjector"
    is-multi-valued="false" />
<set-configuration-property name='gin.ginjector'
    value='com.template.core.client.ioc.ClientGinjector' />

<!-- gwt dnd -->
<inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/>

桌面模块[包含具有桌面特定视图的桌面模块]桌面。gwt。带入口点的xml

desktop.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<inherits name='com.template.core.template' />
<entry-point class='com.template.desktop.client.desktoptemplate' />
<source path='client' />

Tablet Module[包含具有Tablet特定视图的Tablet模块]Tablet。gwt。带入口点的xml

移动模块[包含具有移动特定视图的移动模块]mobile.gwt.xml切入点

台式机、平板电脑和移动设备依赖于核心模块。我还继承了设备模块中的核心模块,并提到了设备模块中核心的依赖性

我能够在eclipse中使用google gwt插件单独运行这些模块。但当我在根项目上执行maven安装时,找不到核心模块的入口点,并引发下面的异常。

[错误]找不到类型“com”。样板果心客户模板“[信息][错误]提示:请检查类型名称“com”。样板果心客户“template”是您真正想要的[信息][错误]提示:检查您的类路径是否在“文件:/home/software/mmt/template\u ui/template\u ui\u desktop/src/main/java/com/template/desktop/client/desktoptemplate”中包含所有必需的源根[信息][错误]错误。java“[信息][错误]第20行:没有可用于com类型的源代码。样板果心客户国际奥委会。客户喷射器;您是否忘记继承所需的模块?[信息][错误]第21行:没有可用于com类型的源代码。样板果心客户应用主要的ServletURL;您是否忘记继承所需的模块?[信息][错误]找不到类型“com”。样板桌面客户desktoptemplate“[信息][错误]提示:以前的编译器错误可能导致此类型不可用[信息][错误]提示:检查模块的继承链;它可能没有继承所需的模块,或者模块可能没有正确添加其源路径条目

[信息]模板用户界面。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功【1.374 s】【信息】核心模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。成功[46.110秒][信息]桌面模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。故障[23.713秒][信息]平板电脑模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。跳过[信息]移动模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。已跳过

溶液

gwt库应该同时具有. java和. class文件。因此我们需要打包这两个文件(您也可以具有. css、. png、. html等文件)。您可以使用以下pom.xml配置来包含它们。

<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.ui.xml</include>
                <include>**/*.java</include>
                <include>**/*.gwt.xml</include>
                <include>**/*.html</include>
                <include>**/*.js</include>
                <include>**/*.css</include>
                <include>**/*.gif</include>
                <include>**/*.jpg</include>
                <include>**/*.png</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.ui.xml</include>
                <include>**/*.java</include>
                <include>**/*.gwt.xml</include>
                <include>**/*.html</include>
                <include>**/*.js</include>
                <include>**/*.css</include>
                <include>**/*.gif</include>
                <include>**/*.jpg</include>
                <include>**/*.png</include>
            </includes>
        </resource>
    </resources>

    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
    </testResources>

我在核心的pom.xml中使用了这个配置

共有1个答案

郏瀚
2023-03-14

gwt库应该同时具有. java和. class文件。因此我们需要打包这两个文件(您也可以具有. css、. png、. html等文件)。您可以使用以下pom.xml配置来包含它们。

<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.ui.xml</include>
                <include>**/*.java</include>
                <include>**/*.gwt.xml</include>
                <include>**/*.html</include>
                <include>**/*.js</include>
                <include>**/*.css</include>
                <include>**/*.gif</include>
                <include>**/*.jpg</include>
                <include>**/*.png</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.ui.xml</include>
                <include>**/*.java</include>
                <include>**/*.gwt.xml</include>
                <include>**/*.html</include>
                <include>**/*.js</include>
                <include>**/*.css</include>
                <include>**/*.gif</include>
                <include>**/*.jpg</include>
                <include>**/*.png</include>
            </includes>
        </resource>
    </resources>

    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
    </testResources>

我在核心的pom.xml中使用了这个配置

 类似资料:
  • 问题内容: 我有一个由几个模块组成的项目。 我正在尝试使用SonarQube进行分析。 我在每个模块中都包含了Sonar Maven插件作为依赖项: 然后我使用以下命令运行Maven: mvn clean验证声纳:声纳 Maven成功完成,并且可以看到Sonar分析,但是当我打开Sonar UI时,模块在项目中不可见。 然而… 如果我从单个模块目录运行Maven命令,则在项目中可见。 感觉我缺少一

  • 问题内容: 我有学习的背景和思想。 我喜欢使用的其中一项功能是可以将项目制作为多Maven模块。例? 令人高兴的是,每个模块都可以具有自己的依赖性,并且可以独立测试它们,而不用运行一个整体应用程序。 我们如何实现类似的东西,或者它的生态系统? 问题答案: 你绝对可以做到的。这被称为SBT Multi-Project build。您可以使用以下内容定义一个主项目和多个子项目(来自上面的docs链接)

  • 我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并

  • 我试图使用Maven包装Spring Boot与多模块,这里我的主要模块pom.xml: 我的普通pom。xml: 我的数据服务pom.xml: ###############################################################################################################################

  • 问题内容: 我一直想知道这一点:是否可以保证多次导入模块都是安全的?当然,如果模块执行操作系统之类的操作,例如写入文件之类的东西,则可能不会,但是对于大多数简单模块而言,简单地随意执行导入是否安全?是否有规范模块全局状态的约定? 问题答案: 是的,无论它是什么模块,您都可以在一个Python程序中进行任意多次。在第一个之后的每个后续访问访问缓存的模块,而不是重新评估它。

  • 这里的问题是,我想创建一个changelog,它可以更新其中的所有模式,但我没有找到一种方法来硬编码changelog中的模式名。可以通过generateChangelog以某种方式将其获取到changelog吗(这样模式名就在my_schema_1.xml中),或者我可以将其键入到changelog中吗?我要找的是这样的: 因为现在只有在命令行中运行liquibase时才能在update子句中更