我正在使用STS和Java一段时间来开发Web应用程序。该项目配置为使用Maven,Roo和MySQL作为数据库。我经常发现在以下情况下我浪费了很多时间:
没有Roo响应 - 当我修改域对象Java类时,即使项目的Roo shell已打开并加载,它也不会响应。我目前对这个问题的攻击是使用roo为类生成一个新的查找程序(以某种方式唤醒Roo)。有没有更好的黑客?
需要很长时间才能编译 - 我已自动将构建设置为项目选项。也许我不应该使用它。但最重要的是,有时我需要在域对象中做一个小的更改,然后运行项目,因此我需要再次构建项目并测试它(即使是小的更改)。是否有任何属性可以配置为仅重新编译项目的某些部分?
Maven和Pom - 我经常发现Maven存在问题,因为每当我修改pom.xml
文件中的依赖项并保存它而忘记进入内部公司网络时.m2
库无法正确更新。在这些情况下,我应该在保存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怎么办?会发生同样的事情还是会更快?我知道有几个讨论,但是当我列出我遇到的问题时,我想我也会提到这个问题。是使用哪种语言和使用哪种语言的永恒问题。在我们的例子中,我们有一个关系数据库,大量数据,安全约束,需要进行精确计算(需要严格的数据类型)。
答案 0 :(得分:5)
<强> 1。确保Roo指向正确的目录:首选项,Spring,Roo支持
<强> 2。编译时间通常会通过验证加剧:首选项,验证,检查暂停所有验证器首选项,Spring,取消选中不需要的验证规则首选项,常规,构建,取消选中构建,然后在需要时手动构建
第3。通过右键单击项目来更新依赖关系:Maven,更新依赖关系和更新项目配置
我写的DZone RefCard中有一些提示。 http://refcardz.dzone.com/refcardz/eclipse-tools-spring
问候,戈登狄更斯
答案 1 :(得分:1)
<强> 1。没有ROO回复
在早期版本的ROO中,我曾经常常在STS中使用ROO控制台。根据我的经验,通过命令行启动的ROO shell更具响应性。我想在较新版本的STS和ROO中有所改进。你使用的是哪个版本?
<强> 2。很长时间来编译
虽然编译时间对我来说足够好,但罪魁祸首通常是验证构建者。几个验证XML,JSP,Spring配置等的验证构建器也需要很长时间才能完成。我最终禁用了几个验证器,使构建时间在合理的限度内。
第3。 Maven和POM
我也遇到过类似的问题。虽然这不完全是一个ROO问题,但由于ROO不提供Maven的替代品,这对于ROO项目来说可能是一个严重的问题。我认为M2-Eclipse可能有一个选项可以让你有选择地强制更新依赖项。