我已经使用STS和Java一段时间来开发Web应用程序了,该项目配置为使用Maven、Roo和MySQL作为数据库。我经常会在以下情况下浪费很多时间:
Roo没有响应 - 当我修改一个域对象的Java类时,即使该项目的Roo shell处于打开和加载状态,它也不会响应。我当前解决这个问题的方法是使用roo为该类生成一个新的finder(这样可以某种程度上唤醒Roo)。是否有更好的解决方法?
编译时间太长 - 我已经设置了自动构建项目选项。也许我不应该使用它。但归根结底,有时我需要对一个域对象进行小的更改,然后运行项目,因此我需要重新构建项目并进行测试(即使是针对小的更改)。是否有任何属性可以配置只重新编译部分项目?
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会怎样?是否会更快?我知道这方面有几个讨论,但是由于我正在列举我遇到的问题,所以我想也提一下这个问题。这是关于使用哪种语言及其用途的永恒问题。在我们的情况下,我们有一个关系数据库、海量数据、安全限制,需要进行精确计算(需要严格的数据类型)。