cuba 平台_认识CLI for CUBA平台

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 平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关闭zookeeper进程

查看端口是否占用 netstat -ano|findstr “2181” 关闭相应进程 tskill 端口号 MAC启动配置文件 找到对应路径 /Users/mac/Desktop/soft/software/apache-zookeeper-3.8.0/bin启动zookeeper ./zkServer.sh start查看状态 ./zkServer.sh status关闭zookeeper ./zkServe…

Linux系统下,虚拟终端开启256色_虚拟终端类型xterm开启256色

文章目录查看当前终端类型修改终端类型查看当前终端类型 现在的终端模拟器早就支持256色了,不过默认可能还是8色的。 开启终端,查看终端类型: [roothtlwk0001host ~]# echo $TERM xterm接着查看 xterm 终端支持的颜色: [rooth…

io.realm:rea_使Java具有响应性的框架和工具包:RxJava,Spring Reactor,Akka和Vert.x概述...

io.realm:rea如今,人们需要具有高用户体验的高响应性,交互式应用程序,这通常意味着要处理异步性,尤其是当应用程序涉及高负载,实时数据和多用户时。 由于Java是一种固有的语言,它固有地支持命令式编程风格…

解决postman请求乱码问题

在请求头里加入 Content-Type:application/json;charsetUTF-8

vim如何开启256色

相同的colorschema,vim 和 gvim 的颜色差距还是很大的,因为 gvim 使用 X 的颜色,而 vim 只能使用终端提供的颜色,所以造成了二者的显示差异。所以 vim 开启 256 色,必须开启终端的 256 色,另请参见《Linux系…

spring boot分层_只需5分钟即可启动并运行分层架构:: Spring Boot第1部分

spring boot分层这是一个分为两部分的系列,其中我将展示如何使用Spring Boot创建分层体系结构。 什么是分层体系结构:简而言之,当我们构建企业应用程序时,我们维护不同的层以封装特定于层的逻辑,这样就不会溢出到另一…

java相除保留两位小数_Java:Java快速入门

源代码组织方式Java程序由packageclass组成,package对应目录的相对路径。1 package com.happyframework.javastudy.hello;2 3 public final class Hello {4 public static void hello(){5 System.out.println("hello!");6 }7 }关于class有如下几点规则&am…

Linux系统下与终端相关的命令

文章目录一、命令 who or w 可以显示有哪些终端登录二、命令 who am i 用来显示当前终端是哪一个三、命令 tty 显示当前终端的设备文件四、命令 chvt 用来切换虚拟终端五、命令 last 显示每个终端的登录时间和持续时间等信息六、命令 toe -a 列出系统支持的所有终端类型七、命令…

jdk switch 枚举_JDK 12开关表达式遇到意外的枚举值

jdk switch 枚举正如我在“ 玩JDK 12的Switch表达式 ”一文中所写的那样, JDK 12 Early Access Build使JEP 325 [“ Switch Expressions(Preview)”)实现的实验变得容易。 我的帖子“ JDK 12:实际中的切换语句/表达式 …

MacBook/MacOS如何写入MacBook特有的符号(例如:⌘/⌥/⎋/⇪)

文章目录步骤说明图文说明步骤说明 1.打开「表情与符号」 按快捷键 Ctrl Command Space 打开「表情与符号」窗口;你也可以在顶部菜单栏中的输入法,然后点击下拉的菜单列表中的「显示表情与符号」。如果找不到这个菜单项,你需要在电脑的「系…

java-jar jvm_使用Java流和In-JVM-Memory的超低延迟查询

java-jar jvm自然界的基本规则(例如光速和通用信息论)对我们可以从传统系统体系结构中获得的最大性能设置了明显的限制。 了解您作为Java开发人员如何使用JVM技术和Java流将性能提高几个数量级。 例如,如果应用程序服务器和数据库服务器相距…

关闭进程

查看端口是否被占用 netstat -ano|findstr “2181” 关闭进程 tskill port

iTerm2 for MacOS(终端模拟器/终端仿真器/命令终端工具)设置详解

文章目录General 通用Startup 启动Closing 关闭MagicSelectionWindowtmuxAppearanceGeneral隐藏程序图标theme 主题tab bar location 选项卡栏位置status bar location状态栏位置WindowsTabsPanesDimming 调光Profiles 配置文件General自定义终端界面的标志自定义标签页标题Sho…

dcdc芯片效率不高的原因_研学丨燃料电池车的典型效率及能耗

燃料电池的一大优势是高效率,能够更高效的利用能源。现在燃料电池车的研发已经持续了相当长一段时间(世界上第一辆燃料电池车为1966年通用的Electrovan),燃料电池车也迭代了许多,那么燃料电池车的效率、氢耗水平都怎么样呢?这里通…

groovy lambda_Java Lambda流和Groovy Clouse的比较

groovy lambda这篇博客文章将研究List数据结构上的一些谚语操作,并对Java 8/9和Groovy语法进行一些比较。 因此,首先是数据结构。 这只是一个简单的橄榄球球员,具有名字和等级。 Java class RugbyPlayer {private String name;private Inte…

Maven定制化打包后的包名(加入时间戳)

在对应的pom文件中加入配置 设置时间戳格式 <properties> <maven.build.timestamp.format>yyyy-MM-dd_HH_mm</maven.build.timestamp.format> </properties> 定制包名字 <build> <finalName>${project.artifactId}-${project.versio…

MacOS/MacBook设置短语快捷键

打开电脑的系统偏好设置 → 键盘 → 文本&#xff0c;如下图所示&#xff1a;

mhd格式三维图像显示_给你的家乡做个三维地图模型,满满的成就感,快来学习下...

以上三维地图模型&#xff0c;利用卫星影像高程数据&#xff0c;实现地图立体三维效果&#xff0c;自己就可以在电脑上个3D沙盘&#xff0c;是不是很酷呢&#xff1f;想要制作三维地图模型必须两样素材&#xff0c;第一是卫星影像&#xff0c;第二是高程数据&#xff0c;之前的…

纹理和基元_Java的精妙之处,包括基元和变量参数数组

纹理和基元在我最近的博客文章Arrays.hashCode&#xff08;&#xff09;与 DZone联合版本的评论中提出了一个有趣的问题。 Objects.hash&#xff08;&#xff09; “。 该评论的作者建立了一些示例&#xff0c;这些示例与我的博客文章中使用的示例相似&#xff0c;并且显示出与…

ORACLE数据库常用命令总结

SELECT * FROM all_tables WHERE ownericore_prdtdb; --查询当前用户下所有的表名 SELECT table_name FROM user_tables; --查询当前用户下所有的表 SELECT * FROM user_tables; --查询当前用户下所有的索引 SELECT * FROM USER_indexes; --查询当前用户下所有的序列 SEL…