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 模块仍然是您应用的核心。在这里,您可以找到扩展 UI 的 MyUI 类。反过来,该类包含扩展 VaadinServlet 的 MyUIServlet,实现了 javax.servlet.Servlet,从而驱动您的整个 Web 应用程序。
从这个原型创建的示例代码中,我看到他们打算在 backend 模块中包含用于访问数据库或 Web 服务等数据源的类。
提示:首次使用此原型创建项目后,请务必在 parent 模块上运行 Maven 生命周期项 install。然后,您的项目将通过额外的下载、完全配置并能够运行来充实。