发行说明

版本 15

  1. 支持通过环境变量配置数据库连接参数(支持 CUBA 版本大于 7.2.7)。能避免将这种敏感信息保存在版本控制中。参考 用环境变量做连接参数 了解细节。

  2. CUBA 项目树添加了新的 All Sources 部分。这里展示项目模块中未按文件类型过滤的所有源文件。开发者可以在这里找到那些没有包含在特定项目部分(服务、界面控制器、实体等)中的文件或类。

    v 15 all sources

  3. 支持按照月份对数据库更新脚本进行组织。对于大型项目团队来说,目前仅按照年份目录对数据库更新脚本进行分组可能不方便。所以我们添加了新的配置:CUBASettingsGroup update scripts by。当这个设置改为 MONTH 时,新的更新脚本会按照月份目录进行分组(比如 /2020/10//2020/11/ 等)。注意,目前已经存在的更新脚本无法重新分组。

    v 15 scripts by month

  4. 添加了 zipProject Gradle 任务的 UI,可以通过主菜单 CUBAAdvancedZip Project 调用。该任务用来打包代码,以便发送。

    v 15 zip project

  5. 目前的 Subscribe to EventInstall Delegate 对话框合并成了一个,这样方便使用。

    v 15 generate handler

  6. 修改平台版本的功能从 Project Properties 迁移到了单独的对话框内。单独的对话框现在也显示相关平台版本的 release notes。

    v 15 platform version

  7. 改进了安装试用版和正式版商业扩展插件的 UI。一些复杂的情况也能自动处理(比如,商业扩展插件上传至自定义的仓库)。

    v 15 commercial addons

  8. 支持显示标准操作的描述。描述显示在创建操作和创建表格向导的对话框中,表格创建向导中以 tooltip 展示。

    v 15 action description

  9. 为一个常见问题添加了探查器,即,当用户手动在 build.gradle 添加 appComponent 依赖,却忘了在 web.xml 文件注册扩展插件。

    v 15 app component inspection

  10. 支持在 IDE 中修改 ~/.gradle/gradle.properties 文件。使用主菜单的 CUBAAdvancedEdit Gradle properties 操作修改 Gradle 全局设置。

  11. Studio 独立版中的 IDE 升级到 IntelliJ 社区版 2020.2。之前下载的独立版不会自动升级,您需要从 CUBA 平台 网页手动下载并更新。

  12. 其他小改进和 bug fixes:

版本 14

  1. 添加了能跟踪附加数据存储数据库 schema 改动的功能(平台版本 7.2.0 以上)。要为数据存储启用自动生成迁移脚本的功能 - 使用 Data Store Properties 对话框的单选按钮组:

    v 14 add datastore mode

    支持以下数据库 schema 管理模式:

    1. Disabled - Studio 不跟踪该存储的数据库结构变化。这是默认模式,以前版本的 Studio 也是这个行为。

    2. Update Only - Studio 能生成数据库 更新 脚本并能根据数据模型更新数据库。但是,Studio 没法重新创建数据库。该模式应该用在数据库不是由 CUBA 完全控制的场景,比如,数据库是与其他应用程序共享的。

    3. Create and Update - Studio 创建完整的 初始化更新 数据库的脚本,并提供从头创建数据库的能力。该模式可用在数据库由 CUBA 应用程序完全控制的场景。

  2. 如果您的项目有附加数据存储,并且启用了数据库 schema 管理,则 Database Scripts 窗口会显示所有数据存储的脚本:

    v 14 db scripts dialog

    还有,New CUBA Entity 对话框可以在注册新实体的时候指定数据存储了:

    v 14 new entity data store

  3. 添加了新的 设计时角色 可视化设计器(平台版本 7.2.0 以上)。用这个界面可以方便的构建角色定义,指定角色配置,比如界面和菜单权限、实体 CRUD 权限、实体属性权限以及特殊权限。

    v 14 role designer

  4. 设计时角色定义现在在 CUBA 项目树的 Security 部分展示。

    v 14 roles in tree

    如需创建新的角色定义,使用 Security 的右键菜单 NewRole

    v 14 new role

  5. 支持可视化编辑 特殊权限和分类 配置。该功能集成在设计时角色编辑器内的 Specific 标签页:

    v 14 specific permissions

  6. 支持在 CUBA 项目树的 Logging 展示本地调试 Tomcat 服务的日志文件:

    v 14 log files in tree

  7. 支持自定义应用程序 日志配置文件 的功能(平台版本 7.2.0 以上)。如需创建自定义的 logback.xml 文件,使用 CUBA 项目树中 Logging 部分的 Generate Logback Configuration File 操作:

    v 14 customize logback

    可按需修改生成的配置文件。本地 Tomcat 调试服务会使用该文件。在 WAR SettingsUberJAR Settings 窗口也会用作默认的日志配置文件。

  8. 中间件Web 集成测试也显示在 CUBA 项目树,位于 Business LogicTests 部分。

    v 14 tests in tree

  9. 支持创建新的集成测试类。如需创建测试类,使用 Tests 部分的操作:NewIntegration Test (Middleware) or Integration Test (Web)

    v 14 new test

  10. 支持 自定义界面模板。在 Create CUBA Screen 向导的第一步点击 Copy template 按钮创建自己的界面模板。模板文件会复制到项目,可以手动修改。自定义的界面模板展示在 CUBA 项目树的 Generic UIScreensCustom Templates 部分:

    v 14 custom screen templates

    可以修改界面控制器和描述的模板文件,通过扩展 settings.xml 文件甚至可以为向导添加新的参数。NewScreen 向导的第一步中,Project Templates 标签页可以选择自定义的界面模板:

    v 14 use custom template

  11. 支持创建 EntityPersistingEvent 事件监听器的脚手架代码,操作添加至 Subscribe to Event 向导窗口

    v 14 before persist event

  12. New CUBA Bean 对话框支持开发者设定目标模块,除了在 core 生成 Spring bean 之外,还可以在 globalwebportal 模块生成:

    v 14 module in new bean

  13. Create CUBA Screen 向导界面做了扩展,增加了配置实体浏览界面和编辑界面的视图步骤。开发者现在可以直接在向导中选择需要的属性而无需另打开窗口选择了。选择的属性也会决定在浏览表格组件和编辑界面展示哪些字段:

    v 14 views in screen wizard

  14. 在界面设计器支持 Form - 表单 创建向导。当用户在界面布局放置 Form 时会显示。这个葵花矿支持选择已有的或配置新的数据容器,同时可以设置 Form 的其他属性:

    v 14 form wizard

  15. 界面设计器的 Component Palette 面板允许开发者从工具箱拖拽组件至源代码。选中的组件会作为子组件添加至选中的 XML 标签。

  16. 简化了主菜单从 CompositeSingle 模式的切换。菜单设计器现在支持开发者复制从平台和扩展组件继承的菜单项至项目配置文件。

  17. 实体设计器增加了额外的 DDL 生成设置。开发者现在可以为特定实体选择一种数据库脚本生成的模式:Create and dropCreate onlyDisabled。现在还能设置那些没有实体字段的数据库列或约束,这样 Studio 不会 drop 掉它们。

    v 14 ddl gen settings

  18. 提升了 Add new attributes to existing screens 功能和易用性,之前只能在源码的快捷操作中使用。现在可以在源码编辑器顶部的快捷操作面板使用了:

    v 14 add attrs top action

    v 14 add attrs display

    在实体属性表格上也添加了 Add to Screens 按钮完成相同的功能:

    v 14 add attr entity designer

  19. 代码检查功能增加了检测 System.out.printlnSystem.err.println 的使用。为开发者提供了快速修复(按下 Alt+Enter / Option+Enter),转换为使用注入或静态 SLF4J Logger 的语句:

    v 14 sout logger

  20. 代码检查为 “Entity is created by calling constructor” 添加了快速修复。按下 Alt+Enter / Option+Enter 可转换为调用 DataManager#create(Entity.class) 方法:

    v 14 datamanager create

  21. 代码检查为 “GUI component is created by calling constructor” 添加了快速修复。按下 Alt+Enter / Option+Enter 可转换为调用 UiComponents#create(Component.class) 方法:

    v 14 uicomp create

  22. 在界面设计器支持自定义组件 UI 元数据。通过在组件定义中添加特定的注解,可以将扩展插件或者项目中自定义的 UI 组件集成到 Studio 的界面设计器。参阅 开发者手册 了解跟多关于 UI 元数据的内容。

  23. 添加了对 CUBA 商店 的支持。现在可以点击工具栏的 CUBA User Profile 按钮登录您的 CUBA 账号:

    v 14 login cuba account

    登录之后,您可以在 Marketplace 窗口下载和安装商业扩展插件的试用版。

  24. 大大缩短了 Generate Database Scripts 操作的处理时间。另外,CUBA Application 运行配置启动时的数据库结构检查时间也缩短了不少。

  25. Studio 现在用 MariaDB connector 连接至 MySQL 和 MariaDB 数据库。因此,如果选择使用 MySQL,无需再手动下载驱动了。如果在某些情况下必须要使用 MySQL 驱动,可以在连接串添加 disableMariaDbDriver 参数启用。

  26. Standalone 版本的 Studio 增加了默认内存使用的大小。现在默认使用 -Xmx1200m,以前是 -Xmx768m

  27. Standalone 版本的 Studio 升级到 IntelliJ Community 2019.3。之前下载的独立版本不会自动升级,需要从 CUBA 网站 重新下载。

  28. 为中国区开发者做了下列基础设施的提升:

    • 添加了新的 CUBA 仓库 [https://nexus.cuba-platform.cn/repository/cuba/](https://nexus.cuba-platform.cn/repository/cuba/),位于中国。

    • 市场内的 扩展插件 信息翻译成了中文。

    • 优化了 Studio 使用的外部资源的位置,已达到更好的网络访问效果。

  29. 移除了 JxBrowser 浏览器。现在 Studio 使用 JavaFX 展示内嵌的 web 网页。显著减少了插件包的大小。

  30. 其他很多小的改进和 bug fix:

版本 13

界面设计器的布局重新排布了,主要为了以下目的:

  • 高效的使用 IDE 窗口的空间。

  • 便于在 XML 描述源码和布局预览之间切换。

  • 允许熟练的开发者在查看和编辑 XML 代码时使用设计器的功能。

对界面设计器做了如下变更和改进:

  1. 界面设计器的面板修改为独立的 IDE 工具窗口。Component Hierarchy 展示在 IDE 的右上角,与之前一样。Component Palette 展示在 IDE 的右下角。Component Inspector 展示在 IDE 的左下角并包含属性和处理器标签页。

    当在编辑器打开界面描述时,这些工具窗口会自动打开。当在编辑器切换界面描述文件时,工具窗口的内容会随之改变。有时当您打开其他的 IDE 工具窗口(比如 Gradle、Persistence 等),设计器的面板会被隐藏,可以通过点击位于左右的 IDE 工具窗口按钮重新打开。

    保留在左下角展示 Component Inspector 是为了满足熟悉之前布局的开发者们。如果需要将该面板移至右侧,点击面板标题的 Move to Right Bottom 即可。

    v 13 sd tool windows

  2. 布局预览面板现在与界面描述的源码编辑面板共享编辑器的空间。去掉了原来的 TextDesigner 标签组。现在在界面描述的右上部添加了四个按钮用于切换界面预览模式:

    1. Editor only - 在编辑器只显示源码。

    2. Editor and Preview - 编辑器空间分割,包含源码和预览。

    3. Preview only - 只显示预览(与之前版本的界面设计器布局类似)。

    4. Preview in Window - 源码在编辑器展示,但是预览通过单独的窗口展示,可以将预览窗口移至其他显示设备。

  3. 当编辑 XML 代码时会激活设计器面板,面板会与编辑器同步交互。熟练开发者们通过编辑 XML 源码切换和修改界面描述,他们现在也能获得界面设计器的编辑功能帮助:

    1. 当编辑器的光标从一个 XML 标签移至另一个标签时,会在 Component HierarchyComponent Inspector 面板自动选中对应的组件。

    2. 在层级面板点击元素会将源码编辑器的光标移至对应的 XML 标签。

    3. 可以从工具箱拖拽新组件至层级树,当编辑器只显示源码时,也可以在左下角的探查面板修改组件的排序和编辑组件属性。源码会直接同步所有改动。

  4. 界面编辑器现在能在 Component Hierarchy 树中展示表格(或数据网格)的列。作为这个改动的一部分,删除了之前的几个用来编辑列和操作的弹窗。现在可以在 Component Inspector 面板直接查看和编辑列、操作属性以及事件处理器。添加新的列或者操作也变得更加容易了。当选中一个表格、表格的一列或者操作, Component Inspector 会显示 + Add 按钮。点击该按钮可以添加列或者操作。

  5. 界面设计器还添加了组件创建向导对话框。添加数据容器、表格、网格、表格的列、表格操作以及表单的字段组件变得更加容易了。

    当为界面添加上面提及的任何一个组件时,会弹出一个对话框用来指定最重要的组件属性。比如,当为界面添加数据网格时,可以选择已有的数据容器或者创建新的数据容器,能设置组件 id 并且为网格选择一组标准操作和按钮。

    v 13 datagrid wizard

  6. 界面设计器的 Component Hierarchy 面板添加了可以铜鼓输入文字查找组件的功能:

    v 13 search hierarchy

  7. Component Hierarchy 面板的右键菜单也添加了额外的转换功能。现在可以快速的将 TextField 组件转换为 TextArea 或者其他组件:

    v 13 text field conversions

  8. Component Hierarchy 面板右键菜单的 Inject to Controller 操作现在支持可以同时注入多个选中的组件。

其他功能和改进:

  1. 添加了对 Kotlin 编程语言的支持。在项目创建向导中,如果选择的平台版本为 7.2.0 或更新版本,则可以选择 Kotlin 为项目的编程语言。CUBA 项目的所有元素:实体、界面、服务都可以用 Kotlin 生成。Studio 的可视化设计器、智能自动补全、自动检查以及热部署也都支持 Kotlin。

  2. 对于使用平台 7.2.0 或更新版本的项目,对 Hot Deploy 机制做了重写(支持所有语言),主要是为了支持 Kotlin。如果在 Java、Groovy 项目中遇到了热部署的问题,可以切换至之前的机制,通过关闭这个设置:CUBASettingsProject SettingsHot deploy compiled classes

  3. 扩展了 CUBA 项目创建向导。在几个步骤之间重新安排了各个字段,并且添加了新的字段:模块前缀、支持的语言、地区、主数据存储属性。

  4. CUBA Application 运行配置添加了两个额外的配置:Command line arguments - 命令行参数Environment Variables - 环境变量。这些设置会在 Tomcat 运行调试模式 CUBA 应用程序的时候生效。比如,通过设置命令行参数,可以配置非默认时区:-Duser.timezone=Europe/London 或者增加内存:-Xmx1500m

    v 13 run configuration

  5. 为登录界面设计了新模板,新的布局和设计可以在基于 CUBA 7.2.0 或最新的版本的项目中使用。新的登录界面样式可以查看 GitHub 了解。如需在项目中添加新的登录窗口,可以在 NewScreen 向导中选择 Login screen with branding image 模板。

  6. Project Properties 对话框中添加了修改项目工件版本的功能:

    v 13 artifact version

  7. 在服务和 Spring bean 源码的编辑器顶部操作面板中添加了 Inject 操作。之前只能在通用菜单(Alt+Insert)使用。

  8. Data Store Properties 窗口添加了方便配置数据库连接的对话框。为 Connection params 字段添加了一个 “铅笔” 按钮,点击这个按钮,会弹出一个窗口用于配置连接参数。Studio 会考虑数据库特定的分隔符将参数转换为连接字符串:

    v 13 connection params

  9. Locales 对话框现在能根据可用的语言给出提示并根据选择的语言自动填充地区代码:

    v 13 locales dialog

  10. 扩展了 Attribute is not included into the view - 属性未包含在视图中 的代码检查。现在还会检查关联了持久化属性的非持久化属性,这种关联是通过 @MetaProperty#related 注解参数指定的。

  11. 改进了 Studio 处理 Gradle 项目同步失败的行为。现在 CUBA 主菜单会一直显示,并包含附加的菜单项:

    1. Re-Import Gradle Project 菜单项,可以用来处理一次性的网络访问故障。

    2. Restore Project to the Latest State 菜单项,能将 Gradle 构建脚本恢复到上次成功导入的状态,这可以放置无意的或者错误的脚本修改。

      v 13 menu import failed

  12. 独立版 Studio IDE 升级到 IntelliJ Community Edition 2019.2。 之前下载的独立版 Studio IDE 不会自动升级,需要从 CUBA Platform 网站下载新的版本。

  13. 很多其他的小改进和问题修复:

版本 12

  1. 使用原生 IntelliJ UI 组件重新实现了界面设计器。新的设计器响应更快,打开也更快。 设计器有了很多改进,下面会提到一些。

    v 12 screen designer

  2. 为设计器添加了一个新的 Handlers 标签页,放置在 Palette 和 Properies 标签页旁边。 展示已有的方法以及所有可以使用的事件监听器和选中组件的代理方法。 如要生成处理方法,只需双击相应的条目即可。

    v 12 sd handlers

  3. 在界面设计器的顶部操作面板添加了 Preview 操作。 能打开一个正在编辑的界面的预览窗口。该预览窗口的画布能跟踪 XML 编辑的改动,按照其布局变化自动更新预览界面。

    v 12 sd preview

  4. 在界面设计器的层级树的右键菜单中,添加了 Inject to controllerGo to XML 操作。

  5. 在层级树和组件工具箱的右键菜单中添加了 CUBA Documentation 操作。这些操作能打开 CUBA 开发者手册中相应的组件章节。

  6. Form 组件的 Properties 标签页添加了 Add Column 按钮。

  7. ValidatorFormatter 界面设计器对话框中,添加了 class 字段类名的自动完成功能。

  8. 添加了各种应用程序事件监听器的脚手架代码功能。可以通过两种方式使用:

    1. 打开已有的 Spring Bean,在源码编辑器顶部的操作面板中点击 Subscribe to event

    2. 右键点击 CUBA 项目树的 Middleware,选择 NewEvent Listener

      v 12 event listeners

  9. 添加了项目级别的界面生成选项支持。这些设置会被用在 NewScreen…​ 界面向导中。 如要修改这些设置,可以打开主菜单的 CUBASettingsScreen Generation Settings 进行修改。 目前支持下列界面设置:

    1. 表单组件的字段宽度(默认 450px),在实体编辑界面使用

    2. 编辑器的操作按钮在界面底部,在 “全屏” 模式(非对话框模式)打开的实体编辑器中使用

    3. 强制以模态窗打开编辑界面,以对话框模式打开的实体编辑器使用

  10. 在界面创建向导中可以设置该界面的菜单项名称。

  11. 可以为没有 id 的组件添加处理器脚手架代码。Studio 会在需要的时候要求开发者输入组件 id。

  12. 为界面控制器的操作面板添加了 Main Menu 操作。该操作可以将当前界面添加至主菜单或者配置导航至主菜单。

    v 12 main menu action

  13. 优化了 CUBA 项目树中 Deployment 部分的构建 WAR 和 UberJAR 的 UI。如果启用了相应的构建配置,现在只需通过双击 Build WARBuild UberJAR 条目直接构建 WAR 或 UberJar。并且在项目树的 WAR/UberJAR Settings 元素旁边显示相应工件的配置文件(single-war-web.xmllogback.xmljetty-env.xml 等),方便访问。

    v 12 uber jar

  14. 添加了能创建新的数据库创建、更新脚本的操作。在 CUBA 项目树的 Data StoresMain Data Store 右键菜单中:

    1. 初始化脚本: NewDatabase init script

    2. 更新脚本: NewDatabase update script

  15. 在从界面控制器调用的 Install Delegate 对话框中,现在可以为表格的列生成 formatter、自定义列生成器或者 value provider。

  16. 为界面 XML 描述中的 icon 属性添加了自动提示,并在侧边糙提供图标预览。

    v 12 icon gutter

  17. LookupField 组件的 XML 属性 optionsEnum 添加自动提示。

  18. UI 组件的 Quick Documentation 弹窗现在提供了至 CUBA 文档的链接:

    v 12 quick doc

  19. 实体设计器中的本地化语言对话框现在能为 Bean 验证自动生成消息键值,比如 “playground_Rank.queueSize.validation.Digits” 或 “playground_Tariff.taxType.validation.NotNull”。

  20. Microsoft SQL Server (2012+) 数据库类型添加了 Integrated Security 选项的支持。注意,只对基于 CUBA 7.1.0+ 的项目有效。

  21. 大型项目的性能进一步提升(数据模型设计,view.xml 静态分析,CUBA 项目树)

  22. 最低支持的 IntelliJ IDEA 版本提升到了 2019.1。意味着如果您使用更早版本的 IDEA(或者 CUBA Studio),将无法升级 CUBA 插件至新版本。

  23. 很多其他的小改进和问题修复:

版本 11

  1. 添加了 “CUBA Add-ons” 界面,可以通过该界面管理项目中的扩展插件。 可以在 CUBA 项目树双击 ProjectAdd-ons 或者从主菜单的 CUBAMarketplace…​ 打开该界面。 关于该界面的详细描述请参阅此章节

    addons market small

  2. 添加了 欢迎界面。简化了访问通用项目设置和操作的流程,并带有文档和社区网页的链接。

  3. 添加了管理第三方依赖库的 UI。在 Project Properties Editor 可以使用。

  4. 实体设计器已经使用 IntelliJ UI 组件进行了重构。新设计器有如下好处:

    1. 更好的响应体验,打开速度更快

    2. 对实体和其属性的改动会立即反馈到源代码

    3. 集成了 IntelliJ 智能重构技术,比如 安全删除 实体属性

      v 11 entity designer

  5. 实施了实体属性的 安全删除 重构技术。 如要开始重构,从实体设计器删除属性或在源码中右键点击该属性选择 RefactorSafe Delete…​。该重构动作会在视图、界面和其他的配置文件里面搜索此属性的使用情况。并能自动删除安全的地方,对需要手动修复的地方给出警告。

    v 11 safe delete attr

  6. 数据存储配置已经从 Project Properties 界面移出。现在数据存储配置可以在 CUBA 项目树的 Data Stores 部分查看和编辑。主数据存储的设置可以从主菜单 CUBAMain Data Store Settings…​ 打开。请参考 管理数据存储 章节了解细节。

  7. 能使用 HSQLDB InMemory 作为附加数据存储。

  8. 支持使用 MariaDB 作为主或附加数据存储。

  9. 支持使用 Amazon Redshift 作为附加数据存储。

  10. 在实体源码编辑器的操作面板添加了 Add attribute

    v 11 add attr

  11. 支持 EntityChangedEvent 监听的操作也添加到了实体源码编辑器的操作面板。可以用来创建新的监听器或者导航至已经存在的监听器方法。

    v 11 entity changed action panel

  12. 添加了 创建 CUBA EntityChangedEvent 监听器 脚手架代码的对话框。现在可以在一个类里面创建多个监听方法并选择两个额外的事件。

    v 11 new entity changed dialog

  13. 在实体设计器中支持更多的 BeanValidation 2.0 注解:@NotEmpty@Positive@PastOrPresent 以及其它。

  14. 当为实体添加属性时,实体设计器能自动识别属性名称是否能作为实体名称显示(namecaptiontitle 等),如果此时还未有实体名称的话,会自动生成 @NamePattern 注解

  15. 视图设计器现在可以为已经存在视图更名,并对使用该视图的地方进行名称替换。

  16. IDEA 的 Inject ‘xxx’ 快速修复提示现在可以根据变量名注入 bean - 扩展了其实现,可用于界面控制器和 Spring bean 的上下文中。使用该快速提示的方法示例:

    v 11 inject before

    v 11 inject after

    要使用该功能,在 Spring bean 或者 CUBA 界面控制器中输入需要注入的 bean 的变量名。然后按下 Alt+Enter,在提示框选择 Inject ‘beanName’。bean 的类名根据变量名自动关联,所以变量名必须跟 bean 接口的名称一致。比如:dataManagerfileStorageServicemessageBundleclusterManagerAPI,这些变量名会被识别并成功注入对应的 CUBA bean。

  17. 添加了 Java 代码检查器,检查使用 getMessageformatMessage 方法指定的本地化字符串是否存在。

    v 11 message quick fix

    MessageBundleMessagesAbstractWindow(旧界面)类的 getMessageformatMessage 会使用该检查。如果指定键值的消息在指定的消息包中不存在,消息键值会高亮为红色。

    如果按下 Alt+Enter 并选择 Create message in the message bundle 进行快速修复,Studio 会打开 Localization Message 对话框,用来为所有配置的项目 locale 输入本地化消息。

  18. Studio 中独立的 IDE 版本已经升级至 IntelliJ Community platform 2019.1。之前下载的独立版本不会自动升级,您需要从 CUBA Platform 网站重新下载。

  19. 包含该版本的 IntelliJ IDEA 的 CUBA 插件已经上传至主插件(稳定)频道。所以不需要单独设置额外的插件仓库了。如果您使用的是之前版本的 CUBA Studio 插件,现在可以从 Custom Plugin Repositories - 自定义插件仓库 列表中移除 https://plugins.jetbrains.com/plugins/haulmont/list 了。 自定义仓库列表在这里:FileSettingsPlugins → “gear” icon → Manage Plugin Repositories

  20. 其它很多小的改进和缺陷修复:

版本 10

  1. 实体、界面控制器和界面描述的代码编辑器顶部现在提供了一个工具栏,通过这个工具栏可以快速访问 CUBA 提供的操作、在相关文件之间快速跳转:

    v 10 actions panel

    通过面板的按钮可以很快的切换到相关的 DDL 脚本、视图和界面。另外,还可以创建新视图、新界面以及JPA生命周期回调方法。

    这些操作在 IDEA 的 “intentions” 菜单也同样提供了,这个菜单可以通过快捷键 Alt+Enter (Option+Enter) 调出:

    v 10 actions menu

  2. 实现了为 EntityChangedEvent 监听器创建脚手架代码的功能。在 CUBA 项目树选择一个实体类、包、或者最外层的 Middleware 节点,然后点击右键菜单中的 New > EntityChangedEvent Listener。Studio 会在 core 模块创建 Spring bean,带有两个监听器方法:分别在事务提交前和后收到通知。

  3. 实现了为 JMX bean 创建脚手架代码的功能。在 CUBA 项目树选择 Middleware 节点或者 Beans 节点下的一个包,然后点击右键菜单的 New > JMX Bean

  4. 实现了为配置接口生成脚手架代码的功能。在 CUBA 项目树选择 Project > Config Interfaces 节点,然后点击右键菜单的 New > Configuration Interface

  5. Inject 对话框现在包含了 Project bean 的选择区域,这里可以注入任何项目中可用的 Spring bean。

  6. 使用 Groovy 编写的界面控制器也能使用 Inject 对话框了。

  7. 提升了依赖注入的体验:现在如果将光标放在方法体内并调出 Inject 弹窗,注入的字段定义会自动生成在类的顶部,而字段名会自动复制到光标处。

  8. 将组件注入控制器 的行为现在也能在组件的 XML 内做了。试试将光标放在XML中一个组件的元素上,然后按下快捷键 Alt+Enter (Option+Enter)。

  9. 实现了添加实体索引和唯一约束的可视化编辑器。可以在实体编辑界面的底部找到新的 Indexes 标签页。

  10. 实现了检查重复实体名称和表名的功能。如果为多个类定义了相同的实体名或者表名,则会在实体类显示提示。

  11. 实现了在实体的字段添加正确 JPA 注解的功能。简化了手动编写实体属性的工作:您在可以添加实体字段并生成 getters/setters 之后在该字段按下 Alt+Enter (Option+Enter),即可看到相关选项。

  12. 在界面控制器代码中,如果注入了界面 XML 中不存在的组件,则会显示提示信息:

    v 10 warn nonexisting

  13. 在实体类代码里,如果实体类没有 @NamePattern 注解的话,也会显示警告信息:

    v 10 warn namepattern

    可以在类名处通过按下 Alt+Enter (Option+Enter) 快捷键修复问题或者屏蔽这个警告。

  14. 视图设计器现在使用了主从布局,视图列表在左边,选中的视图编辑在右边。

  15. 对基于 CUBA 7.1 以上版本的项目,添加了如下功能:

    1. 能使用带侧边菜单和响应式侧边菜单的主界面模板。

    2. 支持向声明式打开的界面和 fragments 传递属性参数。

    3. 支持 REST API 扩展组件。

  16. 所有解决的问题:

版本 9

  1. 破坏性更改:Studio 现在使用 HSQL 2.4.1。当打开一个使用 HSQL 数据库的项目时,Studio 会提示升级项目文件 build.gradle 中的 HSQL 版本。如果同意,项目可以正确的用 Studio v.9+ 继续工作。但是,要注意以下问题:

    1. 带有新 HSQL 驱动的应用程序如果在带有旧 HSQL 驱动的之前版本 Studio 打开的话,有可能启动不了。

    2. 基于 CUBA 7.1 之前的使用 HSQL 的项目,计划任务会失效,因为之前版本的数据库表有一列叫 PERIOD,现在在 HSQL 2.4.1 中已经是保留字了。在 CUBA 7.1 里面重命名了该列。

      Tip

      如果您使用的是 CUBA 7.0 或者更低的版本,而且在开发阶段需要使用 HSQL 和计划任务,可以按照下面的步骤在 Studio 使用 HSQL 2.2.9:

      1. 退出 Studio。

      2. 复制 cuba-studio 目录:

        • Windows 系统:从 C:\Program Files\Haulmont\CUBA Studio 2018.3\plugins\ 复制到 %userprofile%.CubaStudio2018.3\config\plugins\

        • MacOS 系统:从 /Applications/CUBA Studio.app/Contents/plugins/ 复制到 ~/Library/Application Support/CubaStudio2018.3/

      3. 在拷贝的 cuba-studio/lib 目录中,使用 hsqldb-2.2.9.jar 替换 hsqldb-2.4.1.jar。可以在 这里 下载。

      4. 启动 Studio 并打开项目。

      5. build.gradle 中使用 def hsql = ‘org.hsqldb:hsqldb:2.2.9’ 替换 def hsql = ‘org.hsqldb:hsqldb:2.4.1’

      至此,Studio 和项目都会使用 HSQL 2.2.9,基于 CUBA 7.0 和更低版本的应用程序便能在 HSQL 使用计划任务了。

  2. 热部署机制现在能同时部署更改的类依赖的所有类,这样不会在打开修改了的界面时弹出 ClassCastException

  3. 当选择 MySQL 或者 Oracle 数据库时,Studio 会展示一个对话框,这里可以点击链接到供应商网站下载 JDBC 驱动,然后可以上传驱动至项目和 Studio。上传驱动结束后,需要重启 Studio。

    可以使用 CUBA > Database Proprietary Drivers 配置页移除上传的驱动。

  4. Create CUBA Screen 向导中可以在浏览界面和主从界面模板的 Table type 字段选择 DataGridTreeDataGrid

  5. Create CUBA Screen 向导 添加了 Extend an existing screenEntity fragment 模板。

  6. 在可视化编辑器中 Undo/Redo 操作能正常工作。

  7. 在界面设计器中,数据加载器的查询语句添加了自动完成功能。

  8. 界面设计器在画布右上角添加了一个按钮,用来切换至界面控制器。

  9. 在基于新 API 的界面 XML 描述中使用 invokedatasource 属性时,会给出警告。

  10. 如果在 Project Properties 窗口添加了 Groovy 支持,则可以在 Create CUBA Screen 向导中的 Advanced > Controller language 字段选择 Groovy。

  11. Groovy 写的 Services 能在 CUBA 项目树中显示。

  12. 项目打开时会弹出有框架新版本的提示。

  13. 微调了代码编辑器中侧边栏的图标。

  14. 不管有没有重构,都可以在实体设计界面自由更改实体属性的类型。

  15. 添加了枚举类型设计界面。

  16. 视图设计器使用原生 IntelliJ UI 重写。

  17. 数据模型生成器包含使用新 API 的界面模板。

  18. 所有解决了的问题:

版本 8

  1. 现在第一次打开项目是通过导入向导来做了。参阅打开现有项目了解细节。

  2. 项目模型现在保存在 .idea 文件夹的一个文件内,所以不会每次在打开项目时进行 Gradle 同步。

  3. 通过 Run/Debug Configuration 编辑器现在可以选择运行应用程序服务的 JDK 版本。在 Configuration 标签页有 JVM 字段。默认使用 JAVA_HOME 环境变量的值。

  4. 可以通过标准的 Refactor > Rename 操作来对视图进行重命名。在 CUBA 项目树中可以在视图元素上调用这个操作,也可以在 views.xml 文件的视图 XML 定义中的 name 属性调用这个操作或者在界面 XML 描述中任何引用该视图的地方调用。

  5. 可以在界面设计器中数据容器的 view 字段调用视图编辑器。

  6. 实现了在界面描述的 <fragment> XML 元素中对 screen 属性的自动完成功能以及使用参考功能。

  7. 为菜单标题实现了本地化名称编辑器。在 CUBA 项目树中点击 Generic UI > Web Menu,切换到 Structure 标签页,选择一个菜单项然后在 Caption 字段点击 edit 即可。

  8. 如果枚举值没有本地化名称,编辑器则会出现警告。如果发现该警告,可以使用 Create message in the message bundle 快速修复来创建默认名称。

  9. 实现了在配置接口中声明应用程序属性时,能自动完成其名称。当定义 app.propertiesweb-app.properties 内的属性时,按下 Ctrl+Space 即可。

  10. 所有解决了的问题:

版本 7

  1. 如果你的项目基于 CUBA 6.10 ,并使用了 BPM 、图表 、全文搜索或报表等高级扩展组件,则需要在 ~/.gradle/gradle.properties 文件中设置 premium 仓库的访问凭据,如 开发人员手册所述。 Studio不会将凭据传递给Gradle。

  2. 所有解决了的问题: