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命令,它将为您简要介绍每个命令。 让我们看看这些命令在后台的作用,以及它们如何节省开发人员的时间并延长键盘的使用寿命:

一般用途

  • help,version,exit,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. cuba 平台_认识CLI for CUBA平台

    cuba 平台 毫无疑问,软件开发人员(尤其是Java开发人员)的世界充满了键盘狂热者,最好通过单击一下鼠标键入10-15个字母. 而且我们的社区也不例外,因此我们经常被问到"如何在没有CU ...

  2. 认识CUBA平台的CLI

    毫无疑问,软件开发人员(尤其是Java开发人员)的世界充满了键盘狂热者,最好是一次单击即可键入10-15个字母. 而且我们的社区也不例外,因此经常有人问我们"如何在没有CUBA Studio ...

  3. cuba 平台_CUBA平台:TypeScript SDK和REST API

    cuba 平台 在本文中,我们将讨论已存在很长时间但尚未广为人知的CUBA平台的功能- 前端SDK生成器 ,并了解它如何与CUBA的REST API插件一起使用 . Java + JavaScript ...

  4. cuba 平台_CUBA 7的新功能

    cuba 平台 三年前,我们宣布了该框架的第二个公开可用的主要版本. CUBA 6是改变游戏规则的版本–许可从专有转为Apache 2.0. 那些日子,我们甚至无法猜测从长远来看它将把框架带到哪里. ...

  5. cuba 平台_CUBA平台正在开源

    cuba 平台 期待已久的时刻已经到来,现在我们很高兴地宣布, CUBA平台终于加入了自由软件社区! 从现在开始,平台的所有运行时部分都是开源的,并根据Apache 2.0许可进行分发. 这意味着您将 ...

  6. crud-table_我个人的CRUD故事-或我如何来到CUBA平台

    crud-table 在此博客文章中,我想介绍一下我如何使用CUBA平台以及该工具的好处. 在我年轻的"业务应用程序开发"历史上,我将深入探讨各个阶段,只是给您一些背景知识. 因此 ...

  7. cuba 平台_CUBA平台的理念

    cuba 平台 最近发生了很多事. 在CUBA于6月1日正式发布之后,我们推出了新版本,在一些Java网站上发布了我们的第一篇文章,并在伦敦的Devoxx UK会议上介绍了该平台 . 但是在热潮继续之 ...

  8. CUBA平台:TypeScript SDK和REST API

    在本文中,我们将讨论已存在很长时间但尚未广为人知的CUBA平台的功能- 前端SDK生成器 ,并了解它如何与CUBA的REST API插件一起使用 . Java + JavaScript –网络婚姻 仅 ...

  9. CUBA平台–用于快速应用程序开发的开源Java框架

    传统上,自计算时代开始以来,企业软件开发自然面临着一个挑战,当时自然而然地,企业软件开发本应专注于解决实际的业务问题,但与此同时,开发人员必须在技术上花费大量时间和精力.解决方案的一面,例如架构和通用 ...

  10. CUBA平台正在开源

    期待已久的时刻已经到来,现在我们很高兴地宣布, CUBA平台终于加入了自由软件社区! 从现在开始,平台的所有运行时部分都是开源的,并根据Apache 2.0许可进行分发. 这意味着您将完全可以免费创建 ...

最新文章

  1. idea导包都报错_IDEA+Springboot 导出jar包,war包
  2. zabbix JMX监控Tomcat及错误解决方法
  3. Spring5参考指南: Resources
  4. TCP连接(client、server)状态转换
  5. 测试人必备实用技能:写出一份好的Bug报告
  6. Android WindowManagerImpl杂谈
  7. 医疗软件测试工作流程
  8. HTML5期末大作业:家具家居网站设计——智能家居(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 学生静态网页制作...
  9. 用 Python 分析某医院药品销售案例!
  10. 安装xdg-open
  11. 安装NIVIDIA CUDA toolkit
  12. Progressive Domain Adaptation from Source Pre-trained Model
  13. 这玩意儿叫H5编辑器??不应该叫H5全能王吗?
  14. BP算法的反向传播和权值修正(1)
  15. 【django】简易视频播放功能
  16. 谷歌浏览器——新建下载任务
  17. 【BUG记录】Idea spring boot项目中target中没有同步更新最新目录文件及资源
  18. 启强书屋(书荒地老)
  19. 什么是Java的灵魂?了解JVM的结构模型,生命周期,Java王朝虚拟机的更替,各家大厂虚拟机百花齐放
  20. 修改RK3399 HDMI显示分辨率

热门文章

  1. sar adc的常用指标(二)
  2. html空白键,空格键符号是什么?HTML中空格键符号有哪些?
  3. 统一身份认证与授权标准介绍:OpenID,OAuth2,SAML
  4. win7怎么清理java缓存文件夹_win7c盘内存清理最彻底的方法
  5. CentOS7定制Gnome3外观
  6. SQL2005到2008数据库升级
  7. bittorrent_最好的免费BitTorrent客户
  8. mysql导入excel文件_将Excel数据导入MySQL
  9. 红色警戒2修改器原理百科(五)
  10. HDU 5855 Less Time, More profit(最大权闭合图)