本文介绍BizWorks Toolkit插件使用过程中的常见问题和相应解决方案。
在项目中没有找到文档中提到的modules.yaml怎么办?
解决方案:
从平台重新生成代码,查看项目中是否存在
modules.yaml
。根据业务域或Package在合适的位置手动创建
modules.yaml
,具体操作,请参见配置modules.yaml。
代码和模型不一致,但编辑器中没有提示是什么原因?
解决方案:
请检查BizWorks Toolkit插件是否完全配置正确,IDEA平台界面右下角的BizWorks图标是否为下图状态,若未配置完成请重新配置。具体操作,请参见配置BizWorks Toolkit(适用于0.12.0之前版本)。
请检查本地代码平台模型的缓存是否为最新状态,您可尝试重新获取平台模型。具体操作,请参见获取平台模型最新状态。
请检查本地代码是否可以编译通过,BizWorks注解(例如:@DomainObject、@ApplicationService等)是否可以正常引用。更多信息,请参见BizWorks Toolkit插件使用项目前提和快速标记代码为模型。
提示代码扫描为模型后存在相互覆盖的情况怎么处理?
相互覆盖不会阻断扫描上报,但无法保证上报后平台模型的正确性。您可以临时忽略,但建议修改。
问题原因:
相互覆盖指的是在不同的Package下,存在拥有相同BizWorks模型类型(例如:领域对象、结构对象等) 且同名的两个类。
因为扫描会覆盖所有标记BizWorks注解和被依赖的类(相关信息,请参见什么是依赖),且映射到平台模型的时候code
为类名,不包含Package。所以对于映射为平台模型的Java类型,需要保证类名不同。
解决方案:
修改类的名称,确保不重复。您可以直接使用IDEA提供的Rename(Shift+F6)功能(建议使用)。
Java代码中的一些特定内容是如何支持的?
如何支持方法重载
当方法重载时,您可通过quickFix方式或手动方式为Method注解中指定code属性。如果注解中code属性存在且有值的情况下,BizWorks Toolkit插件则会将code值作为方法唯一编码上报至平台;如果code不存在,则以方法名作为方法唯一编码上报至平台。
方法重载时quickFix提示如下:
方法重载时正确情况示例如下:
如何支持泛型
泛型类型会实例化为一个结构对象上报。
泛型类型的使用,会去掉尖括号,将类型与类型参数拼接在一起成为新的结构对象Code,示例如下:
GenericExample<ObjectA> -> GenericExampleObjectA
GenericExample<GenericExample<ObjectB> -> GenericExampleGenericExampleObjectB
如果泛型使用并未提供参数类型, 或使用单个通配符?
,则默认参数类型为Object。如果泛型的参数类型使用通配符表达则取其上界类型。示例如下:
GenericExample -> GenericExampleObject
GenericExample<?> -> GenericExampleObject
GenericExample<? extends ObjectA> -> GenericExampleObjectA
如何支持内部类
为了防止内部类类名冲突,内部类会在外部类类名后拼接内部类类名为平台的code
。具体示例如下,外部类A正常上报为 A,A的内部类InnerClassB会上报为AInnerClassB。
@StructureObject
class A {
@StructureObject
Class InnerClassB {
}
}
如何支持枚举
当前平台对枚举类型无特殊处理,扫描的时候会作为一个普通的结构对象上报。
如何快速检查代码是否符合平台规则?
解决方案:
您可以通过BizWorks规约扫描查看当前目录下类是否符合平台规则。具体操作,请参见触发检查和快速修复本地代码。
扫描后在Tool Window中没有任何模型怎么处理?
解决方案:
请检查配置关联平台和配置modules.yaml。
路径下的关联代码package在项目中是否正确存在。具体操作,请参见请检查项目是否正确导入且构建通过。具体操作,请参见使用BizWorks Toolkit注意事项。
请检查BizWorks注解(例如:@DomainObject、@ApplicationService等)是否正确标注。具体操作,请参见快速标记代码为模型。
如何获取idea.log?
在排查问题的时候,研发人员也许会需要您提供idea.log以帮助定位问题。您可以通过以下三种方式获取。
idea.log通常会被IDEA按大小等原因切分。通常情况下您只需获取最新的idea.log文件即可。您也可以补充序号最大的日志文件。
方式一:通过菜单获取idea.log
打开IDEA,在顶部导航栏选择 (如果是macOS系统:请选择 )打开日志目录。
方式二:通过Find Action获取idea.log
在顶部导航栏选择 。
在Actions页签的文本搜索框中输入show log in后,您可以在系统的资源浏览器中打开日志所在目录。
方式三:通过手动定位获取idea.log
具体操作,请参见Logs directory 打开日志目录。
插件异常报告
如果您在使用IDEA插件时未得到预期效果,或您在使用插件期间在平台界面得右下角出现BizWorks相关异常,请使用钉钉搜索钉钉群号41519770加入钉钉群进行反馈。
对于插件异常的场景,您可以参考以下图例操作,取得异常报告,并协助提供给我们。
点击下图图标,查看异常报告。
在IDE Fatal Errors对话框的文本输入框中,输入您做何种具体操作的时候发生了异常,完成后单击对话框右下角的创建BizWorks插件错误报告。
项目中存在bizworks.yml文件但却提示需要新建是什么原因?
问题原因:请检查您的项目是否存在根目录名称和项目名与某个子模块名称一致。
解决方案:请查看您的项目结构,避免您的项目根目录名称和项目名与某个子模块名称一致的情况。