我使用vaadin-archetype-application-multimodule
listed here并在on this wiki page上进行了讨论。
原型生成了一个包含三个子模块的项目myproject-production
myproject-ui
和myproject-widgetset
。我不确定每个项目的目的。例如myproject-production
& myproject-ui
这两个项目都是war。
我不确定我的代码的哪些部分应该放在哪里。有人可以向我解释每个项目的用法吗?
答案 0 :(得分:5)
从生成的README.md
:
- 父项目:公共元数据和配置
- xxx-widgetset:widgetset,自定义客户端代码和对小部件加载项的依赖
- xxx-ui:主要应用模块,开发时间
- xxx-production:为部署生成生产模式WAR的模块
对于背景:使用Vaadin,您基本上使用仅服务器的Java代码开发Web应用程序。这是“UI”代码,它在服务器上运行,并在后台与一种在浏览器上运行Javascript的“瘦客户端”进行通信(这是“widgetset”)。通常您不需要担心,但是对于更高级的东西,您可以创建/派生/扩展widgetset。这将在Widgetset项目中进行。
答案 1 :(得分:2)
answer by geert3是正确的。我会补充一些想法。
首先:如果您是Vaadin的新手,请不使用多模块 Maven原型作为您的第一个项目(除非您已经是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
项目上执行“清理并构建”。或者对父母进行“清理和构建”。
“widgetset”包含用于呈现用户界面小部件的类和资源,例如按钮,字段,标签等。
-production
要进行部署,请使用-production
模块。它有一些优化并禁用Debug Window模式,因为您可能不希望最终用户仔细阅读您的Vaadin应用程序的内部。
在Vaadin 8.1中,这个原型产生了一组不同的模块。
-parent
-ui
-backend
-addon
ui
模块仍然是您应用的核心。在这里,您可以找到MyUI
类UI
。反过来,该类包含MyUIServlet
,backend
扩展VaadinServlet
,实现javax.servlet.Servlet
,驱动整个网络应用。
从这个原型创建的示例代码中,我看到他们希望install
模块包含用于访问数据源(如数据库或Web服务)的类。
提示:首次使用此原型创建项目后,请务必在parent
模块上运行Maven Lifecycle项{{1}}。然后,您的项目将通过额外下载,完全配置并能够运行来充实。