cuba 平台

毫无疑问,软件开发人员(尤其是Java开发人员)的世界充满了键盘狂热者,最好通过单击一下鼠标键入10-15个字母。 而且我们的社区也不例外,因此我们经常被问到“如何在没有CUBA Studio的情况下启动项目?”这样的问题。 或“是否有轻巧的免费命令行替代CUBA Studio?”。 所以,大家好消息!

免费CLI是否可以代替商业CUBA Studio?

CLI不被视为CUBA Studio的替代品,它还有另一个使命。 CLI对于对Spring框架,JPA和CUBA基础结构有丰富经验的开发人员非常有用,并且(重要!)在黑色窗口中使用灰色字母感到舒适。 简而言之,cuba-cli是一个命令行实用程序,使您可以轻松地基于CUBA Platform创建项目。 而且,它提供了主要项目工件的轻量级支架:实体,屏幕,服务等。

同时Studio保持其利基地位,可让您轻松了解CUBA世界。 它提供了直观的用户界面,即使没有任何JPA或Spring或任何底层技术的经验,即使是CUBA的新手也可以在几分钟内设计出第一个应用程序……实际上,您不需要编写任何代码即可进行开发标准的CRUD应用程序– Studio会为您完成。 对于从另一个生态系统迁移到CUBA的人们以及习惯于在IDE中获得终极舒适的人们,Studio也是一个不错的选择。

综上所述,CUBA Studio更多地是关于“边做边学”和巨大的“省时”,而CLI是为您编写强制性样板程序的主力军。

什么CLI可以?

显然,您必须先安装CLI。 它支持主要的操作系统,您可以在此处找到每个操作系统的安装指南。 安装后,只需在命令行中键入cuba-cli即可 ,就是这样–我们准备开始一个新项目或使用现有项目进行操作。 通过点击选项卡,可以找到列出的所有受支持的命令。 选择或键入help命令,它将为您简要介绍每个命令。 让我们看看这些命令在后台执行的操作,以及它们如何节省开发人员的时间并延长键盘的使用寿命:

一般用途

  • 帮助,版本,退出,cd –显然,这些命令不会影响您的源代码,并且从名称中可以清楚地理解它们的操作,因此让我们跳过它们:)。

项目设置和全局设置

  • create-app –指导完成创建新CUBA项目所需的步骤:项目名称,名称空间,根软件包,平台版本和项目中使用的数据库。 该项目将包含全局(可从核心和Web模块访问),核心(用于业务逻辑的服务器端层)和Web(用于屏幕控制器和其他GUI逻辑的服务器端层)模块。
  • polymer –基于Google开发的Polymer库,向您的应用程序添加了一个新客户端。 它通过添加新模块的配置和任务来修改settings.gradlebuild.gradle 。 它还为您的Polymer前端应用程序创建所需图像资源的文件,并生成登录名,菜单和其他有用的Web组件。
  • 主题 –在modules / web目录下创建一个特殊的文件夹结构,一些用于标记应用程序的图像(登录图标,菜单图标和favicon)以及一些scss文件,您可以在其中修改默认方案。 还将webThemesModule模块及其配置添加到settings.gradle和build.gradle文件中。 最后,此命令添加了deployThemes gradle任务,以便无需重新启动服务器即可查看更改。 文档的此部分提供有关此主题的详细信息。
  • add-component –将现有的应用程序组件插入您的应用程序。 它将新行添加到构建gradle的依赖关系块中,并修改Web模块的web.xml ,将应用程序组件的主包添加到appComponents上下文参数中。

领域建模

  • 实体 –为JPA实体及其DDL脚本生成一个存根。 此实体还将根据实体类型在persistence.xmlmetadata.xml中注册-不管它是否持久。 最后,CLI将生成一个消息包,以提供实体属性的本地化。
  • 枚举 –生成一个实现EnumClass接口的Enum,带有本地化消息的字段以及有用的fromId方法。

商业逻辑

  • 实体侦听器 –搭建实现实体侦听器接口的Spring组件,并在相应的Entity类中声明它。 当实体更改状态时,此类侦听器将被钩住。 您可以在此处找到更多信息。
  • 服务 –搭建全局模块中的接口及其核心中的实现。 为了可从Web模块使用,它已在web-spring.xmlWebRemoteProxyBeanCreator bean定义中注册
  • bean –只需生成一个Spring组件,并节省大约150个字符的输入时间:)。
  • config –在具有指定源类型(系统,数据库或应用程序)的指定模块中为CUBA配置接口提供一个存根。 在文档的这一章中找到有关CUBA配置接口的更多信息。

用户界面

  • 屏幕 –搭建GUI屏幕。 该命令支持创建:
    –一个新的空白屏幕
    –扩展现有的 –浏览器–包含实体列表,其上的CRUD操作和过滤器的屏幕 –编辑器–用于创建或编辑单个实体的屏幕。

该命令将xml屏幕描述符及其Java控制器与本地化消息包一起使用。 也可以选择将屏幕添加到主菜单。

杂项

  • 应用程序组件 –将您的CUBA应用程序可嵌入(可插入)到另一个CUBA应用程序中。 在文档中找到有关应用程序组件概念的更多信息。 此命令生成app-component.xml文件,该文件定义了对其他组件的依赖关系,描述了现有的应用程序模块,生成的工件和公开的应用程序属性。 运行该命令时,它将提示您将当前模块前缀更改为唯一的前缀,以避免冲突。 如果更改前缀,它还将调整settings.gradlebuild.gradle文件。
  • update-script –创建一个SQL更新脚本文件,该文件的位置和名称符合CUBA约定。 CUBA平台包括在应用程序启动时应用更新脚本的机制。 这些脚本应按照从旧到新的历史顺序执行。 为确保此类排序,更新脚本应放在modules / core / db / update / {USED DATABASE} / {yy} /目录下,并命名为{yyMMdd}-{INCREMENT}-{SCRIPT NAME} .sql
  • 自定义模板 –根据开发人员定义的速度模板生成项目文件。 模板机制允许声明性地扩展CLI命令集,而无需编译。 在此处找到有关CLI模板引擎的更多信息。

如您所见,CLI进行了大量工作来保护开发人员免受无聊但不可避免的例行程序的侵害。

可扩展性

首先,如前所述,CLI提供了一个模板引擎来扩展其命令集,而无需更改源并重新编译它。 CLI模板包括两部分:

  1. template.xml文件,以声明方式描述了自定义命令要询问的问题。
  2. 一组文件(xml,java或任何其他格式),其中包含Apache Velocity脚本,因此可以由Velocity模板引擎对其进行处理。 来自template.xml文件的问题的答案将作为参数传递,并且可以在Velocity脚本中访问。

该维基页面提供有关CLI模板的详细信息。

其次,CLI提供扩展点来加载自定义插件,并公开可在自定义插件中使用的公共事件。 使用这种机制,开发人员可以创建具有最大灵活性的新命令并扩展现有命令,例如,为screen命令添加其他选项,例如查找。 您可以在此处找到CLI插件的文档和开发指南。

最后,CUBA CLI是一个开源项目,其源代码发布在GitHub上 。 CUBA团队很高兴看到您的贡献(请参阅贡献指南 )以及您可能遇到的问题 。 因此,如果您看到一些常见但未发现的用例,请随时帮助社区并向我们发送您的请求请求!

结论

这只是我们CLI的起点,我们希望它将帮助您使开发过程更加流畅和快速,特别是如果您不使用CUBA Studio。 我们将进一步改善CLI,并已在规划路线图– 在这里您可以看到我们要在第二个版本中发布的功能。

最后,我也想分享一条建议。 开始您的第一个CUBA项目时,对于平台的初始评估,CLI可能会变得过于繁重。 CUBA Studio提供30天的试用期 ,因此,如果您或您的同事不熟悉该框架,建议在初始阶段使用CUBA Studio并以交互方式发现平台功能。 由于试用期已结束,因此您可以决定是否要订阅并继续使用CUBA Studio或移至CLI。

最后,您可以在我们的YouTube频道上观看CLI演示视频。

PS哦,是的,几乎忘了告诉我们CLI是用Kotlin编写的。 这是我们第一次在生产中使用这种语言-到目前为止,一切都很好!

翻译自: https://www.javacodegeeks.com/2018/08/cli-cuba-platform.html

cuba 平台

cuba 平台_认识CLI for CUBA平台相关推荐

  1. python开发实训平台_一体化教学实训平台解决方案

    泰迪科技根据高校实践教学中的痛点,首次提出"鱼骨教学法"的概念.以企业真实需求为导向,学生学习技能紧紧围绕企业实际应用需求,将学生掌握的理论知识,通过企业案例的形式进行衔接,达到知 ...

  2. java部署平台_开源Java自动化部署平台JDeploy

    JDeploy是Java + Shell实现的基于Linux系统的自动化.可视化的项目部署平台,能部署Java服务.Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkin ...

  3. python 零代码快速开发平台_现在低代码开发平台和零代码平台区别是什么?

    低代码与零代码,可参考一下 开发平台在国内已经发展了很久了,从有代码到低代码,甚至有些厂家声称可以无代码,当然无代码只是一个噱头. 低代码开发可以解决传统的开发方式的复杂方式,提高开发效率,节省时间成 ...

  4. 专门卖游戏辅助的平台_各大游戏售卖平台

    WeGame 之所以把 WeGame 放到最后来说,是因为它真的很复杂,几乎所有猜疑.阴谋论和否定都会第一时间指向腾讯.当然这也可以理解,在玩家看来,如果一个经常做坏事的恶人突然做了一件好事,这是很可 ...

  5. rocm平台_利用ROCm在3A平台进行深度学习

    零.平台介绍 0.软件平台 操作系统:Ubuntu20.04 Linux Kernel:5.8.4-050804-generic NVCC(ROCm):rocm-dev3.7.0/Ubuntu 16. ...

  6. java自动化部署平台_开源Java自动化部署平台JDeploy

    JDeploy是Java + Shell实现的基于Linux系统的自动化.可视化的项目部署平台,能部署Java服务.Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkin ...

  7. cloud 部署_使用Google Cloud AI平台开发,训练和部署TensorFlow模型

    cloud 部署 实用指南 (A Practical Guide) The TensorFlow ecosystem has become very popular for developing ap ...

  8. 基于WF设计业务流程平台_权限在流程模板外部映射

    基于WF设计业务流程平台_权限在流程模板外部映射 前面的几篇文章我介绍了一种权限与流程模板相结合的设计方式,今天我介绍一种权限在流程模板外部映射的计方式. 限在流程模板外部映射,主要的实现思路是: 在 ...

  9. 小程序模板网站平台_小程序模板平台哪个好

    小程序模板网站平台_小程序模板平台哪个好?分享一个微信小程序模板平台,超60个行业的小程序模板免费使用,页面内容丰富样式多样的,小程序界面模板. 微信小程序模板网站平台 微信小程序模板平台的存在,就是 ...

最新文章

  1. 学习数据结构 二叉查找树(binary search tree)
  2. windows 10 +fedora双系统引导修复
  3. 计算机屏幕怎么睡眠状态,解决办法:显示器进入睡眠状态时如何解决问题
  4. Switch Case中的经典
  5. CycleGAN 各种变变变
  6. Mac超强扒站神器——SiteSucker Pro 4.3.3 mac中英文
  7. 【转】Prewitt 算子
  8. C#大型医院管理系统源码
  9. 个人电脑防止被入侵的设置方法。
  10. 易辅客栈 从零学辅助_如何从零启动辅助项目
  11. 【渝粤教育】电大中专计算机网络基础作业 题库
  12. 新版标准日本语中级_第十八课
  13. “筑巢引凤”亦“固巢养凤”:上海科创办领导与人才代表彭垚云端共话人才引育
  14. 藏着无数秘密:一键查看缩略图文件的神器 Thumbs Viewer
  15. 7-1 sdut-Collection(Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬
  16. Disruptor并发框架,核心组件RingBuffer
  17. 基于变色龙算法的线性规划问题求解matlab程序
  18. python 数据、曲线平滑处理
  19. 实验四-1:输入一个字符,请判断是字母、数字还是其它字符。
  20. gerber 文件格式 [一]

热门文章

  1. 天下第一 txdy (LCT+双指针+线段树)
  2. P5664-Emiya家今天的饭【dp】
  3. nssl1446-小智的旅行【dp】
  4. jzoj2941-贿赂【数学期望,dfs】
  5. P3951,jzoj5473-小凯的疑惑【数论】(NOIP2017提高组)
  6. 北方大学 ACM 多校训练赛 第十五场 数字游戏
  7. Sentinel(十九)之主流框架的适配
  8. Spring MVC工作原理
  9. eclipse搭建多module项目的坑
  10. jQuery 基础教程 (一)之jQuery的由来及简介