STS Spring与Roo和Maven一起使用-速度太慢了?

12

我已经使用STS和Java一段时间来开发Web应用程序了,该项目配置为使用Maven、Roo和MySQL作为数据库。我经常会在以下情况下浪费很多时间:

  1. Roo没有响应 - 当我修改一个域对象的Java类时,即使该项目的Roo shell处于打开和加载状态,它也不会响应。我当前解决这个问题的方法是使用roo为该类生成一个新的finder(这样可以某种程度上唤醒Roo)。是否有更好的解决方法?

  2. 编译时间太长 - 我已经设置了自动构建项目选项。也许我不应该使用它。但归根结底,有时我需要对一个域对象进行小的更改,然后运行项目,因此我需要重新构建项目并进行测试(即使是针对小的更改)。是否有任何属性可以配置只重新编译部分项目?

  3. Maven和Pom - 我经常遇到Maven的问题,当我在pom.xml文件中修改依赖项并保存它时,忘记切换到内部公司网络时,.m2库将不能正确更新。在这种情况下,我应该在保存pom.xml之前切换到非内部网络。令人烦恼的是,一旦我更改了网络偏好设置并运行“更新所有Maven依赖项”命令,它不会正确执行。问题似乎是Maven会生成这些文件,但却不够聪明以识别它们并尝试从Web存储库中重新获取库。为了解决这个问题,我需要删除文件夹的内容并再次运行该命令。是否有任何人发现更好的解决方法?

Roo真的值得吗?如果是的话,应该在什么时候使用?

我发现Roo很适合入门和创建初始的数据库和项目配置(例如安全性)。但是接下来呢?到目前为止,我一直在使用Roo生成查找器,但是我经常发现,当一个新的查找器被添加到类中时,Roo需要大约10/15分钟才能更新(我们的项目非常庞大)。我考虑开始大部分时间将Roo shell关闭,并手动在.aj文件中添加查找器并自己注释.java文件。这会与Roo之后产生冲突吗(例如,一旦我因其他原因打开Roo shell)?

Java和STS

为什么项目编译需要这么长时间?我的意思是,我想象一下,STS正在检查每个类中是否存在与最近修改的文件的依赖项,如果有,则更新代码并重新生成jar文件。这是正确的吗?如果我使用PHP或Python会怎样?是否会更快?我知道这方面有几个讨论,但是由于我正在列举我遇到的问题,所以我想也提一下这个问题。这是关于使用哪种语言及其用途的永恒问题。在我们的情况下,我们有一个关系数据库、海量数据、安全限制,需要进行精确计算(需要严格的数据类型)。

2个回答

5

1. 确保Roo指向正确的目录: 首选项,Spring,Roo支持

2. 编译时间通常会受到验证的影响: 首选项,验证,取消所有验证器的挂起,首选项,Spring,取消不需要的验证规则,首选项,常规,构建,取消自动构建,需要时手动构建

3. 通过右键单击项目更新依赖项:Maven,更新依赖项和更新项目配置

我写了一些技巧在DZone RefCard中。 http://refcardz.dzone.com/refcardz/eclipse-tools-spring

敬礼,戈登·迪金斯


1

1. 无 ROO 响应

在 ROO 的早期版本中,我经常遇到 STS 中 ROO 控制台的问题。据我的经验,通过命令行启动的 ROO shell 更加响应迅速。我猜测在较新的 STS 和 ROO 版本中,情况已经得到了改善。您使用的是哪个版本?

2. 编译时间过长

尽管编译时间已经足够快了,但罪魁祸首通常是验证构建器。几个验证构建器需要验证 XML、JSP、Spring 配置等,这需要很长时间才能完成。我最终禁用了多个验证器,将构建时间缩短到合理的范围。

3. Maven 和 POM

我也遇到了类似的问题。虽然这不完全是 ROO 的问题,但由于 ROO 没有提供 Maven 的替代方案,这可能会成为 ROO 项目的严重问题。我认为 M2-Eclipse 中可能有一个选项,可以让您有选择地强制更新依赖项。


谢谢您的建议,看来我的Roo正在对我玩恶作剧。每当我手动修改一个域对象并添加查找器注释时,Roo都不会捕捉到它(即使shell是打开的)。我通过在添加注释之前和之后键入“hint”来验证了这一点。第二次,“hint”消息将在30分钟后才出现,并且不会有任何与新查找器相关的消息(我确实保存了所有内容并编译了代码)。 - mm24

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接