【问题标题】:vaadin-maven-archetype - Why does it generate three modules?vaadin-maven-archetype - 为什么它会生成三个模块?
【发布时间】:2014-12-23 01:26:28
【问题描述】:

我使用了vaadin-archetype-application-multimodule listed here 并在on this wiki page 上进行了讨论。

原型生成了一个包含三个子模块的项目,myproject-productionmyproject-uimyproject-widgetset。我不确定每个项目的目的。例如myproject-productionmyproject-ui 都是war 项目。

我不确定我的代码的哪些部分应该放在哪里。有人可以向我解释一下每个项目的用法吗?

【问题讨论】:

    标签: maven vaadin vaadin7


    【解决方案1】:

    来自生成的README.md

    • 父项目:通用元数据和配置
    • xxx-widgetset:小部件集、自定义客户端代码和小部件附加组件的依赖项
    • xxx-ui:主要应用模块,开发时间
    • xxx-production:生成用于部署的生产模式 WAR 的模块

    背景知识:使用 Vaadin,您基本上可以使用纯服务器 Java 代码开发 Web 应用程序。这是“UI”代码,它在服务器上运行并在幕后与浏览器上以 Javascript 运行的一种“瘦客户端”进行通信(这是“widgetset”)。通常你不需要担心,但对于更高级的东西,你可以创建/派生/扩展小部件集。这将进入 Widgetset 项目。

    【讨论】:

      【解决方案2】:

      answer by geert3 是正确的。我会补充一些想法。

      单模块项目

      首先:如果您是 Vaadin 的新手,请不要不要使用多模块 Maven 原型作为您的第一个项目(除非您已经是 Maven 专家) .

      如果是 Vaadin 的新手,请使用 vaadin-archetype-application listed here。这个单一模块产生了一个工作的 Vaadin 应用程序,这确实是我们多年来在 Vaadin 工作的常规方式。

      多模块项目

      vaadin-archetype-application-multimodule 原型生成了一个针对开发和部署都进行了优化的项目。只有在您掌握了使用 Vaadin 的窍门后才能使用它。

      -parent

      当您第一次创建 Vaadin 对象时,请在您的 IDE 中的父模块上执行“清理和构建”。这反过来执行其他三个从属模块的构建。

      -ui

      -ui 模块是您在日常 Vaadin 工作中使用的模块。您使用小部件构建您的Layout 对象并将它们显示在UI 中。在开发中,您可以通过在此模块上选择 IDE 的“运行”或“调试”命令来运行/调试 Vaadin 应用程序。

      如果您的某些更改似乎没有生效,请在此模块的 IDE 中执行“清理并构建”。如果事情看起来真的不正常,请在 -parent 项目上执行“清理并构建”。

      -widgetset

      如果您添加具有可视化组件的add-on(插件/扩展),您将需要对-widgetset 项目进行“清理和构建”。或者对父级执行“清理和构建”。

      “小部件集”包括用于呈现用户界面小部件(如按钮、字段、标签等)的类和资源。

      -production

      对于部署,请使用 -production 模块。它进行了一些优化并禁用了Debug Window 模式,因为您可能不希望最终用户仔细阅读您的 Vaadin 应用程序的内部结构。

      更新:Vaadin 8

      在 Vaadin 8.1 中,此原型生成一组不同的模块。

      • -parent
        通用元数据和配置
      • -ui
        主应用模块
      • -backend
        包含任何服务器端 java 代码和依赖项
      • -addon
        插件模块,自定义服务器和客户端代码

      ui 模块仍然是您应用的核心。在这里,您可以找到扩展 UIMyUI 类。反过来,该类包含扩展 VaadinServletMyUIServlet,实现了 javax.servlet.Servlet,从而驱动您的整个 Web 应用程序。

      从这个原型创建的示例代码中,我看到他们打算在 backend 模块中包含用于访问数据库或 Web 服务等数据源的类。

      提示:首次使用此原型创建项目后,请务必在 parent 模块上运行 Maven 生命周期项 install。然后,您的项目将通过额外的下载、完全配置并能够运行来充实。

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多