本文介绍三种不同的方式,将平台模型与本地代码不一致的部分以平台模型为准同步到本地。
方式一:通过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);
}
方式二:对编辑中的文件全量同步
全量同步只会同步本地代码模型缺失的字段、方法,不会删除与修改本地已存在的字段、方法。
在编辑中的文件上单击右键,选择。
方式三:在Tool Window新增或全量同步平台模型到本地代码
该同步方式与同步方式二:对编辑中的文件全量同步行为一致。
-
单击BizWorks平台模型页签,右键单击目标模型(模型分类、限界上下文),按需选择目标功能操作项。
-
右键单击模型分类(如领域对象 domain-object)后,弹出上下文菜单,包含同步模型到本地代码和删除平台模型两个选项。
-
在Tool Window中展开限界上下文(如订单管理 Order),可看到领域服务、领域对象、应用服务、结构对象等子节点。右键单击目标节点,在弹出的菜单中选择同步模型到本地代码或删除平台模型。
-
-
系统会根据
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... -