2012-02-07 45 views

回答

33

这些工具与它们都是类似的,它们都是帮助设置和配置项目的命令行工具,并且都能够生成代码。 但是有一些主要的设计差异:

1)Forge被设计用于任何类型的Maven项目。 Roo几乎与Spring有关。因为Forge更通用,您可以为项目中使用的任何类型的技术找到或编写插件。对Roo来说也是如此,但只有在Spring之上的技术。你可以说Forge是一个(更)通用框架,用于构建Maven项目的插件,而Roo只是一个Spring工具。

2)Roo也是一个编程框架,不仅是一个工具。代码生成大量使用AspectJ来使代码生成对程序员来说几乎是不可见的,并且提供了仅在基于动态语言的框架中才能找到的功能(例如,在实体上的动态查找方法)。这可能既是好事也是坏事。这很好,因为它没有“看到”生成的代码,它功能强大且更加优雅。不好的一点是它会对Roo进行大规模的锁定。这在技术上是不正确的,因为它只是“简单”的AspectJ,但它远非正常的Java/Spring代码。 AspectJ在所有IDE中也不能很好地工作(Eclipse和IntelliJ都很好)。由于这种编程模式,我绝不会使用Roo。如果我想要一个具有动态语言功能的框架,我使用Grails,而不是那里的一半。当然这只是我个人的意见。

Forge中的代码生成更多的是传统的类型,尽管它存在缺陷,但是您永远不会锁定任何非标准的东西。内置代码生成基于普通Java EE 6.

  • 声明。我是Forge撰稿人,可能会有偏差;-)