最近我写了一些工具,帮助我生成
Java代码,否则将是漫长而乏味的任务.我使用freemarker来写出模板.但是,模板中的所有空格都保留在输出中,导致相当复杂的代码.我可以从我的模板中删除缩进来解决这个问题,但这样做使得我的模板不可维护.
考虑这个简单的示例模板:
public class MyTestClass { <#list properties as p> private String ${p.name}; </#list> }
我的模板格式很好,但是我的代码如下所示:
public class MyTestClass { private String prop1; private String prop2; private String prop3; }
缩进有点太多了,应该是:
public class MyTestClass { private String prop1; private String prop2; private String prop3; }
要完成这个,我必须从我的模板中删除缩进:
public class MyTestClass { <#list properties as p> private String ${p.name}; </#list> }
对于这种简单的情况,从我的模板中删除缩进并不是一个问题,但是您可以想象复杂的模板变得非常难读.
一方面,我真的希望我的代码格式很好,但另一方面我也希望我的模板格式很好.我使用Eclipse作为IDE,内置的格式化程序完全按照我的(和我的团队)的愿望定制.如果我可以以某种方式从freemarker模板生成代码,并且以后处理步骤将其输出格式化为Eclipse的格式化程序,那将是巨大的.