同步平台模型到本地代码

更新时间:
复制 MD 格式

本文介绍三种不同的方式,将平台模型与本地代码不一致的部分以平台模型为准同步到本地。

方式一:通过QuickFix对当前文件部分同步

BizWorks Toolkit插件会对编辑中文件做即时检查,在通过检查后的QuickFix列表中,选用适合的操作将平台模型同步到本地。

示例一:

import ...
@ApplicationService(domain = "TestThree", name = "TestService", desc = "TestService")
public interface TestService {
    @Method(desc = "testTwo", name = "testTwo")
    void testTwo(@Parameter(name = "p1", required = false) Integer p1, @Parameter(name = "p2", required = false) List<Integer> p2);
    @Method(desc = "testTwo", name = "testTwo")
    String testInspection(@Parameter(name = "p1", required = false) Integer p1, @Parameter(name = "p2", required = false) List<Integer> p2);
}

示例二:IDE 代码检查发现 testInspection 方法相比平台模型多出,QuickFix 提供在代码中安全删除 testInspection的操作选项。TestService 接口代码示例:

@ApplicationService(domain = "TestThree", name = "TestService", desc = "TestService")
public interface TestService {
    @Method(desc = "testTwo", name = "testTwo")
    void testTwo(@Parameter(name = "p1", required = false) Integer p1, @Parameter(name = "p2", required = false) List<Integer> p2);
    @Method(desc = "testTwo", name = "testTwo")
    String testInspection(@Parameter(name = "p1", required = false) Integer p1, @Parameter(name = "p2", required = false) List<Integer> p2);
}

方式二:对编辑中的文件全量同步

说明

全量同步只会同步本地代码模型缺失的字段、方法,不会删除与修改本地已存在的字段、方法。

在编辑中的文件上单击右键,选择BizWorks > 同步模型到本地代码

方式三:在Tool Window新增或全量同步平台模型到本地代码

说明

该同步方式与同步方式二:对编辑中的文件全量同步行为一致。

  1. 单击BizWorks平台模型页签,右键单击目标模型(模型分类、限界上下文),按需选择目标功能操作项。

    • 右键单击模型分类(如领域对象 domain-object)后,弹出上下文菜单,包含同步模型到本地代码删除平台模型两个选项。

    • Tool Window中展开限界上下文(如订单管理 Order),可看到领域服务领域对象应用服务结构对象等子节点。右键单击目标节点,在弹出的菜单中选择同步模型到本地代码删除平台模型

  2. 系统会根据 genConfig.yaml将代码生成到指定位置。

    关于genConfig.yaml说明和规则,请参见从 Entity 生成各层代码用户文档
    • 如果配置不存在,则和 Entity 生成到各层代码一样,根据项目情况推测包位置。

    • 如果推测的生成位置与预期不一致,需要您手动创建配置,明确生成位置。

    选择生成后,系统会在 BizWorks ToolWindow 的 Console 窗口展示生成情况。

    17:01:36.016: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}CartItemPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/...
    17:01:36.021: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}CreateOrderReqDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/...
    17:01:36.024: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}OrderBy" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/src/main/...
    17:01:36.031: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}OrderDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/src/main/...
    17:01:36.035: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}OrderItemDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/src/...
    17:01:36.039: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}OrderItemPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/...
    17:01:36.043: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}OrderPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/src/...
    17:01:36.047: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}PaymentInfoDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/sr...
    17:01:36.051: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}PaymentInfoPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-cli...
    17:01:36.064: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}Predicate" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/src/ma...
    17:01:36.070: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}QueryCondition" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/s...
    17:01:36.075: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}ShippingInfoDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/s...
    17:01:36.078: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}ShippingInfoPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-cli...
    17:01:36.082: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}ShoppingCartDTO" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-client/s...
    17:01:36.086: [同步模型到本地代码] 生成文件完成. "MODULE_CENTER/Order/structure-object}ShoppingCartPageInfo" 生成到文件:/Users/khan/git/bizworks-demo/khan-daily-demo-app2/order/order-cli...
    17:01:36.086: [同步模型到本地代码] 任务完成

    该窗口可关闭,生成的目标文件可点击跳转。

    在模型同步过程中,系统会根据模型与代码之间的差异,决定目标文件是否需要更改或保持不变。若模型数量较多,建议建立并激活一个空白ChangeList,以便于对比展示和回滚同步模型至代码操作的修改内容。生成完成后,在 IntelliJ IDEA 的 Commit 面板中,可看到自行创建的同步模型 ChangeList 中包含以下待提交文件:

    自行创建的同步模型ChangeList  9 files
      Order.java          ~/git/bizworks-demo/khan-daily-demo-app2/order/order-do...
      OrderBy.java        ~/git/bizworks-demo/khan-daily-demo-app2/order/order-...
      PaymentInfo.java    ~/git/bizworks-demo/khan-daily-demo-app2/order/or...
      Predicate.java      ~/git/bizworks-demo/khan-daily-demo-app2/order/order...
      QueryCondition.java ~/git/bizworks-demo/khan-daily-demo-app2/order/orde...
      ShippingInfoService.java  ~/git/bizworks-demo/khan-daily-demo-app2/...
      TestDomainService.java    ~/git/bizworks-demo/khan-daily-demo-app2/o...
      TestDomainService2.java   ~/git/bizworks-demo/khan-daily-demo-app2/...
      TestMapper.java     ~/git/bizworks-demo/khan-daily-demo-app2/order/orc...