使用velocity模板引擎生成代码格式不对的问题

模板代码块下:

## ----------  BEGIN 字段循环遍历  ----------
#foreach($field in ${table.fields})
    #if(${field.keyFlag})
        #set($keyPropertyName=${field.propertyName})
    #end
    #if("$!field.comment" != "")
    /**
     * ${field.comment}
     */
    #end
    @ApiModelProperty(name = "${field.propertyName}", value = "${field.comment}",             dataType = "${field.propertyType}")
    #if(${field.keyFlag})
    ## 主键
    @TableId(value = "${field.name}", type = IdType.UUID)
    #elseif(${field.fill})
    ## 普通字段
    ## -----   存在字段填充设置   -----
    @TableField(value = "${field.name}", fill = FieldFill.${field.fill})
    #elseif(${field.name}=="tenantId")
    @TableField(value = "${field.name}", exist=false)
    #elseif(${field.convert})
    @TableField("${field.name}")
    #end
    ## 乐观锁注解
    #if(${versionFieldName}==${field.name})
    @Version
    #end
    ## 逻辑删除注解
    #if(${logicDeleteFieldName}==${field.name})
    @TableLogic
    #end
    private ${field.propertyType} ${field.propertyName};
#end
## ----------  END 字段循环遍历  ----------

生成代码如图所示:

    /**
     * 角色ID
     */
    @ApiModelProperty(name = "roleId", value = "角色ID", dataType = "Long")
        @TableId(value = "ROLE_ID", type = IdType.UUID)
            private Long roleId;
    /**
     * 角色名称
     */
    @ApiModelProperty(name = "roleName", value = "角色名称", dataType = "String")
        @TableField("ROLE_NAME")
        private String roleName;
    /**
     * 角色描述
     */
    @ApiModelProperty(name = "remark", value = "角色描述", dataType = "String")
        @TableField("REMARK")
        private String remark;
    /**
     * 创建时间
     */
    @ApiModelProperty(name = "createTime", value = "创建时间", dataType = "LocalDateTime")
        @TableField("CREATE_TIME")
        private LocalDateTime createTime;
    /**
     * 修改时间
     */
    @ApiModelProperty(name = "modifyTime", value = "修改时间", dataType = "LocalDateTime")
        @TableField("MODIFY_TIME")
        private LocalDateTime modifyTime;

可见缩进格式完全混乱,不利于阅读。

原因是因为velocity把空格缩进原封输出到代码格式中,因此模板中的脚本命令需要顶格编写,虽然影响可读性,但能保证生成代码的格式,另外这个顶格编写的命令,是包括注释关键字在内的。

修改后的模板文件如下:

## ----------  BEGIN 字段循环遍历  ----------
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
    /**
     * ${field.comment}
     */
#end
    @ApiModelProperty(name = "${field.propertyName}", value = "${field.comment}", dataType = "${field.propertyType}")
#if(${field.keyFlag})
## 主键
    @TableId(value = "${field.name}", type = IdType.UUID)
#elseif(${field.fill})
## 普通字段
## -----   存在字段填充设置   -----
    @TableField(value = "${field.name}", fill = FieldFill.${field.fill})
#elseif(${field.name}=="tenantId")
    @TableField(value = "${field.name}", exist=false)
#elseif(${field.convert})
    @TableField("${field.name}")
#end
## 乐观锁注解
#if(${versionFieldName}==${field.name})
    @Version
#end
## 逻辑删除注解
#if(${logicDeleteFieldName}==${field.name})
    @TableLogic
#end
    private ${field.propertyType} ${field.propertyName};
#end
## ----------  END 字段循环遍历  ----------

你可能感兴趣的:(日常失足,备忘,velocity)