【问题标题】:STS Spring with Roo and Maven - too slow?STS Spring 与 Roo 和 Maven - 太慢了?
【发布时间】:2011-08-25 10:53:32
【问题描述】:

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

  1. 没有 Roo 响应 - 当我修改域对象 Java 类时,即使项目的 Roo shell 已打开并加载,它也不会响应。我目前对这个问题的破解是使用 roo 为类生成一个新的查找器(它以某种方式唤醒了 Roo)。有没有更好的破解方法?

  2. 编译时间长 - 我已将自动构建设置为项目选项。也许我不应该使用它。但最重要的是,有时我需要在域对象中做一些小改动,然后运行项目,因此我需要再次构建项目并对其进行测试(即使是小改动)。是否有任何属性可以配置为仅重新编译项目的某些部分?

  3. Maven 和 Pom - 我经常发现 Maven 的问题,因为每当我修改 pom.xml 文件中的依赖项并将其保存时忘记位于公司内部网络 @987654322 @ library 将无法正确更新。在这些情况下,我应该在保存pom.xml 之前切换到非内部网络。 烦人的一点是,一旦我更改了网络首选项并运行“更新所有 maven 依赖项”命令,它就无法正确执行。原因是新库的 pom 文件已生成,但内容为错误消息。问题似乎是 Maven 生成了这些文件,但不够聪明,无法识别它们并尝试再次从 Web 存储库中获取库。要解决此问题,我需要删除文件夹的内容并再次运行该命令。 有没有人找到更好的解决方案?

Roo 真的值得吗?如果是的话,什么时候?

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

Java 和 STS

为什么项目编译需要这么长时间?我的意思是,我想 STS 正在检查每个类中是否存在与最近修改的文件的依赖关系,如果有一个更新代码并重新生成一个 jar 文件。它是否正确?如果我使用 PHP 或 Python 怎么办?会发生同样的情况还是会更快?我知道对此进行了多次讨论,但是当我列出我遇到的问题时,我想我也会提到这一点。使用哪种语言以及用于什么是永恒的问题。在我们的例子中,我们有一个关系数据库、大量数据、安全约束,并且需要进行精确的计算(需要严格的数据类型)。

【问题讨论】:

    标签: java spring maven spring-roo


    【解决方案1】:

    1.确保 Roo 指向正确的目录: Preferences、Spring、Roo Support

    2。编译时间通常因验证而复杂化: 首选项,验证,选中暂停所有验证器首选项,Spring,取消选中不需要的验证规则首选项,常规,构建,取消选中自动构建,然后在需要时手动构建

    3。通过右键单击项目来更新依赖项:Maven、更新依赖项和更新项目配置

    我写的 DZone RefCard 中有一些提示。 http://refcardz.dzone.com/refcardz/eclipse-tools-spring

    问候,戈登狄更斯

    【讨论】:

      【解决方案2】:

      1.没有ROO回应

      在早期版本的 ROO 中,我经常遇到 STS 中的 ROO 控制台问题。根据我的经验,通过命令行启动的 ROO shell 响应速度更快。我猜在新版本的 STS 和 ROO 中情况有所改善。你用的是哪个版本?

      2。编译时间长

      虽然编译时间对我来说已经足够好,但罪魁祸首通常是验证构建器。验证 XML、JSP、Spring 配置等的几个验证构建器需要大量时间才能完成。我最终禁用了几个验证器,以将构建时间控制在合理的范围内。

      3。 Maven 和 POM

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

      【讨论】:

      • 感谢您的建议,看来我的 Roo 对我耍了坏把戏。每当我手动修改域对象添加查找器注释时,Roo 都不会选择它(即使外壳是打开的)。我通过在添加注释之前和添加注释之后键入“提示”来验证这一点。第二次“提示”消息仅在 30 分钟后出现,并且不会有任何与新查找器相关的消息(我确实保存并编译了)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      相关资源
      最近更新 更多