通過velocity 模板生成的代碼,可能出現格式錯亂問題,這裏做個總結,幫助部分需要的人 (苦笑)
一般代碼編寫有格式要求的程序猿吧(或者idea進行代碼格式化後),通常在寫velocity模板時通常都是這樣寫的,如下:
#foreach ($column in $columns)
#if(!$Entity && $item != 7 && $table.isSuperColumn($column.javaField))
@ApiModelProperty(value = "$column.columnComment")
#if($column.javaField == $pkColumn.javaField)
@TableId(value = "$pkColumn.columnName", type = IdType.AUTO)
#elseif( $column.javaField.indexOf("create") > -1)
@TableField(value = "$column.columnName", fill = FieldFill.INSERT)
#elseif($column.javaField.indexOf("modify") > -1)
@TableField(value = "$column.columnName", fill = FieldFill.UPDATE)
#end
private $column.javaType $column.javaField;
#elseif(!$table.isSuperColumn($column.javaField))
@ApiModelProperty(value = "$column.columnComment")
private $column.javaType $column.javaField;
#end
#end
這樣寫最起碼好看吧,然而生成的代碼如下:
@ApiModelProperty(value = "任務ID")
private Long jobId;
@ApiModelProperty(value = "任務名稱")
private String jobName;
@ApiModelProperty(value = "任務組名")
private String jobGroup;
@ApiModelProperty(value = "調用目標字符串")
private String invokeTarget;
@ApiModelProperty(value = "cron執行表達式")
private String cronExpression;
@ApiModelProperty(value = "計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行)")
private String misfirePolicy;
@ApiModelProperty(value = "是否併發執行(0允許 1禁止)")
private String concurrent;
@ApiModelProperty(value = "狀態(0正常 1暫停)")
private String status;
@ApiModelProperty(value = "創建者")
@TableField(value = "create_by",fill = FieldFill.INSERT)
private String createBy;
WTF?不對啊,按理說我代碼是對齊了的啊,結果,呵呵呵,沒辦法,velocity模板 就是這麼任性 (苦笑)
試試如下的方式吧 ,貌似我通過去空格也不能解決,只能用如下方式解決(苦笑)
velocity 模板 這麼對齊
#foreach ($column in $columns)
#if(!$Entity && $item != 7 && $table.isSuperColumn($column.javaField))
@ApiModelProperty(value = "$column.columnComment")
#if($column.javaField == $pkColumn.javaField)
@TableId(value = "$pkColumn.columnName", type = IdType.AUTO)
#elseif( $column.javaField.indexOf("create") > -1)
@TableField(value = "$column.columnName",fill = FieldFill.INSERT)
#elseif($column.javaField.indexOf("modify") > -1)
@TableField(value = "$column.columnName",fill = FieldFill.UPDATE)
#end
private $column.javaType $column.javaField;
#elseif(!$table.isSuperColumn($column.javaField))
@ApiModelProperty(value = "$column.columnComment")
private $column.javaType $column.javaField;
#end
#end
生成的代碼就是正常的了(苦笑),如下:
@ApiModelProperty(value = "任務ID")
private Long jobId;
@ApiModelProperty(value = "任務名稱")
private String jobName;
@ApiModelProperty(value = "任務組名")
private String jobGroup;
@ApiModelProperty(value = "調用目標字符串")
private String invokeTarget;
@ApiModelProperty(value = "cron執行表達式")
private String cronExpression;
@ApiModelProperty(value = "計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行)")
private String misfirePolicy;
@ApiModelProperty(value = "是否併發執行(0允許 1禁止)")
private String concurrent;
@ApiModelProperty(value = "狀態(0正常 1暫停)")
private String status;
@ApiModelProperty(value = "創建者")
@TableField(value = "create_by",fill = FieldFill.INSERT)
private String createBy;
這樣就對齊了,相當於是 velocity 的表達式什麼的最好不要用tab對齊,自己的代碼對齊就行(苦笑)