vaadin-maven-archetype - 为什么它会生成三个模块?

时间:2014-12-23 01:26:29

标签: maven vaadin vaadin7

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

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

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

2 个答案:

答案 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

在Vaadin 8.1中,这个原型产生了一组不同的模块。

  • -parent
    常用元数据和配置
  • -ui
    主要申请模块
  • -backend
    包含任何服务器端Java代码和依赖项
  • -addon
    。添加模块,自定义服务器和客户端代码

ui模块仍然是您应用的核心。在这里,您可以找到MyUIUI。反过来,该类包含MyUIServletbackend扩展VaadinServlet,实现javax.servlet.Servlet,驱动整个网络应用。

从这个原型创建的示例代码中,我看到他们希望install模块包含用于访问数据源(如数据库或Web服务)的类。

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