velocity模板生成的代碼格式錯亂,沒有很好的可讀性

通過velocity 模板生成的代碼,可能出現格式錯亂問題,這裏做個總結,幫助部分需要的人 (苦笑)

一般代碼編寫有格式要求的程序猿吧(或者idea進行代碼格式化後),通常在寫velocity模板時通常都是這樣寫的,如下:

#foreach ($column in $columns)
    #if(!$Entity && $item != 7 && $table.isSuperColumn($column.javaField))
    /** $column.columnComment */
    @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))
    /** $column.columnComment */
    @ApiModelProperty(value = "$column.columnComment")
    private $column.javaType $column.javaField;

    #end
#end

這樣寫最起碼好看吧,然而生成的代碼如下:

        /** 任務ID */
    @ApiModelProperty(value = "任務ID")
    private Long jobId;
            /** 任務名稱 */
    @ApiModelProperty(value = "任務名稱")
    private String jobName;
            /** 任務組名 */
    @ApiModelProperty(value = "任務組名")
    private String jobGroup;
            /** 調用目標字符串 */
    @ApiModelProperty(value = "調用目標字符串")
    private String invokeTarget;
            /** cron執行表達式 */
    @ApiModelProperty(value = "cron執行表達式")
    private String cronExpression;
            /** 計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行) */
    @ApiModelProperty(value = "計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行)")
    private String misfirePolicy;
            /** 是否併發執行(0允許 1禁止) */
    @ApiModelProperty(value = "是否併發執行(0允許 1禁止)")
    private String concurrent;
            /** 狀態(0正常 1暫停) */
    @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))
    /** $column.columnComment */
    @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))
    /** $column.columnComment */
    @ApiModelProperty(value = "$column.columnComment")
    private $column.javaType $column.javaField;

#end
#end
生成的代碼就是正常的了(苦笑),如下:
    /** 任務ID */
    @ApiModelProperty(value = "任務ID")
    private Long jobId;

    /** 任務名稱 */
    @ApiModelProperty(value = "任務名稱")
    private String jobName;

    /** 任務組名 */
    @ApiModelProperty(value = "任務組名")
    private String jobGroup;

    /** 調用目標字符串 */
    @ApiModelProperty(value = "調用目標字符串")
    private String invokeTarget;

    /** cron執行表達式 */
    @ApiModelProperty(value = "cron執行表達式")
    private String cronExpression;

    /** 計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行) */
    @ApiModelProperty(value = "計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行)")
    private String misfirePolicy;

    /** 是否併發執行(0允許 1禁止) */
    @ApiModelProperty(value = "是否併發執行(0允許 1禁止)")
    private String concurrent;

    /** 狀態(0正常 1暫停) */
    @ApiModelProperty(value = "狀態(0正常 1暫停)")
    private String status;

    /** 創建者 */
    @ApiModelProperty(value = "創建者")
    @TableField(value = "create_by",fill = FieldFill.INSERT)
    private String createBy;

這樣就對齊了,相當於是 velocity 的表達式什麼的最好不要用tab對齊,自己的代碼對齊就行(苦笑)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章