如何用Telosys在同一源根下为每个模型生成文件夹以组织Java实体类?
解决Telosys按模型生成独立子包/文件夹的问题
核心配置方法
要实现每个模型对应独立文件夹,关键是正确配置templates.cfg的目标路径,结合Telosys的模型变量动态生成路径。
1. 正确编写templates.cfg配置行
确保配置的第三列(目标文件路径)正确使用${model.name}变量,并且以斜杠结尾标识文件夹,示例如下:
# 格式:模板文件路径 | 生成文件名模板 | 目标文件夹路径模板 src/templates/entity.java.vm | ${model.name}.java | src/main/java/com/yourproj/domain/${model.name}/
- 替换
com/yourproj/domain为你项目的基础包路径(用斜杠/分隔,不要用点.) - 第三列末尾的
/必须保留,告诉Telosys要创建以模型名为名的文件夹
2. 排查变量不生效的原因
如果${model.name}没起作用,检查这几点:
- 确认Telosys版本:3.x及以上版本支持
${model.name}等内置模型变量,旧版本建议升级 - 检查
.model文件:每个实体模型必须正确定义name属性,比如:
entity { name: Order // 其他属性... }
3. 同步模板内的包声明
生成的Java文件包路径要和文件夹对应,所以模板文件(如entity.java.vm)里的包声明也要动态生成,示例:
package com.yourproj.domain.${model.name};
常见错误修正
- 不要用点
.写路径:Telosys在路径配置中只识别斜杠/作为分隔符 - 不要省略路径末尾的斜杠:如果第三列没加
/,${model.name}会被当成文件名的一部分,而不是文件夹 - 避免硬编码路径:模板里的包名要和配置的文件夹路径保持一致,否则会出现包路径不匹配的问题
内容的提问来源于stack exchange,提问作者jglatre
相关产品推荐
相关产品推荐

