6

对于 C#,我经常使用CodeSmith和最近的T4 生成器,它是 Visual Studio 的一部分。

我正在为 Java 寻找类似的东西,特别是 Eclipse 插件,因为我使用 Eclipse IDE 进行所有 Java 开发。

4

11 回答 11

6

我使用过VelocityStringTemplate。Velocity 更传统一些(想想 JSP/ASP 概念),而 StringTemplate 似乎更干净一些。在这个 Artima 采访中描述的某种意义上。两者都是纯模板引擎,如果您想从模型中生成完整的代码,则需要您围绕它们编写一些代码。

StringTemplate 由ANTLR内部使用,这可能对您的工作有用。

作为一种替代方法,您可以使用Eclipse,使用EMFJET

于 2008-12-27T16:31:56.147 回答
6

我发现freemarker可以很好地生成任何类型的代码。从网站:

FreeMarker 是一个“模板引擎”;基于模板生成文本输出(从 HTML 到自动生成的源代码)的通用工具。它是一个Java 包,一个Java 程序员的类库。它本身不是最终用户的应用程序,而是程序员可以嵌入到他们的产品中的东西。

struts2 经常使用它。该网站有一长串使用 freemarker 的其他产品。

于 2008-10-17T02:46:14.930 回答
2

您应该尝试使用 Telosys Tools,这是一个 Eclipse 插件,用于从具有可定制 Velocity 模板的现有数据库中生成代码

见:http ://www.telosys.org/

Eclipse 市场:http ://marketplace.eclipse.org/content/telosys-tools

教程在这里:https ://sites.google.com/site/telosystutorial/

请参阅有关 CodeSmith 的另一个问题:是否有任何可用的免费软件工具,例如 Codesmith?

于 2015-06-08T17:21:20.690 回答
2

我使用JavaForger从模板生成代码。它解析现有的类,以便您可以在模板中使用该类数据。它既可以创建新类,也可以将代码插入现有类。您可以根据字符串转换规则(例如 myProject/dao/ProductDao.java => myProject/service/ProductService.java)确定将生成的代码插入到何处。

JavaForger 是开源的,使用FreeMarker作为模板引擎,JavaParser作为解析器。

于 2019-08-02T08:14:38.363 回答
1

这是一个老问题,但(对于 Java)唯一接近 CodeSmith Generator 所做的是Spring Roo

原因是 Java 没有像 C# 那样的部分类。Spring Roo 通过使用AspectJ ITDs解决了这个问题。

于 2012-09-01T12:44:19.583 回答
1

我的答案是使用 StringTemplate,但它不仅仅是使用什么工具。

生成java代码是问题吗?还是使用java工具?程序员通常会很自在地编写代码。因此,编写一些 java 类并编写将使用 StringTemplate 生成代码的 walk 并不是一个飞跃。我个人认为创建示例模型、从模型生成 Java 代码是一个很好的练习。根据您的用例,您最终可能会手动编写 JSON 模型,而无需编写任何 java 代码来生成 java 代码。或者,您最终可能会编写生成等效模型的 Java 类。

您可以使用读取 JSON的基于StringTemplate的 STST。STST 是基于命令行的,我相信您可以将它连接到 eclipse 和/或 Visual Studio。

我个人认为可移植性,JSON是一种极其简单的语言。几乎每种语言都有支持它的库。

于 2012-11-14T17:46:35.197 回答
0

eclipse 有一个内置的模板系统。

查看窗口 -> 首选项 -> java -> 代码样式 -> 代码模板

于 2009-05-15T12:14:41.620 回答
0

我不是 C# 人,所以我不知道等价物是什么,但是我发现xdoclet在过去非常好。我不认为它与 eclipse 这样集成,但您可以从 ant 脚本运行它。执行诸如从带注释的 Java 类生成 Hibernate 映射文件之类的事情。如果这就是您要寻找的东西,这很有用:)

于 2008-10-16T20:01:06.183 回答
0

我编写了一个简单的基于 Web 的应用程序供我使用。它可在https://github.com/harish2704/templates 获得,演示可在http://templates-harish2704.rhcloud.com/获得 它的语言独立工具。GUI 支持多种语言(突出显示、片段完成等)

于 2014-03-13T18:25:10.047 回答
0

看看我的项目https://github.com/karajdaar/templator看看是否有帮助。

于 2013-03-23T05:07:50.100 回答
0

你可以看看我的插件: http: //fast-code.sourceforge.net/。它允许选择多个字段并使用用户指定的速度模板生成代码。

于 2010-10-12T14:52:06.130 回答