2011-08-25 71 views
11

自從開發Web應用程序以來,我使用STS和Java。該項目配置爲使用Maven,Roo和MySQL作爲數據庫。我經常發現我浪費了很多時間在下列情況下:STS Spring與Roo和Maven - 太慢了?

  1. 沒有袋鼠響應 - 當我修改域對象的Java類即使Roo shell中的項目已打開並加載它會無反應。我目前對這個問題的攻擊是使用roo爲其生成一個新的發現者(它以某種方式喚醒了Roo)。有沒有更好的黑客?

  2. 長時間編譯 - 我已經自動設置生成作爲項目選項。也許我不應該使用它。但底線是,有時我需要在域對象中做一些小改動,然後運行項目,因此我需要重新構建項目並對其進行測試(即使對於小的更改)。是否有任何屬性可以配置爲僅重新編譯項目的某些部分?

  3. Maven和雙龍 - 我經常發現的問題與Maven因爲每當我在pom.xml文件修改的依賴,並將其保存,而忘記是公司內部網絡的.m2庫就不能正確地更新。在這些情況下,我應該在保存pom.xml之前切換到非內部網絡。 討厭的位是,一旦我改變網絡首選項,並運行「更新所有maven依賴」命令,它不會正確執行。原因是生成了新庫的pom文件,但是卻有一條錯誤消息作爲內容。這個問題似乎是Maven生成這些文件,但然後不夠聰明,以識別它們,並嘗試再次從網絡存儲庫中獲取庫。要解決這個問題,我需要刪除文件夾的內容並再次運行該命令。 有沒有人找到了更好的解決方案?

Roo真的值得嗎?如果是的話?

我發現Roo非常適合上手並創建初始數據庫和項目配置(例如安全性)。但是之後?到目前爲止,我一直在使用Roo來生成發現者,但我經常發現Roo需要花費大約10/15分鐘來更新新的發現者(我們的項目相當大)。我正考慮開始在大多數時間關閉Roo shell,並手動將搜索器添加到.aj文件中,並自己註釋.java文件。這之後會與Roo發生衝突(例如,當我因爲其他原因打開Roo shell時)?

Java和STS

爲什麼這個項目需要很長時間來編譯?我的意思是,我想象STS正在檢查每個類中是否存在對最近修改過的文件的依賴,以及是否有更新代碼並重新生成jar文件。它是否正確?如果我使用PHP或Python怎麼辦?同樣的事情會發生還是會更快?我知道有幾個關於這個問題的討論,但是當我列出我遇到的問題時,我想我也會提到這一點。是使用哪種語言和什麼語言的永恆問題。在我們的例子中,我們有一個關係數據庫,大量的數據,安全約束,並且需要做精確的計算(需要嚴格的數據類型)。

回答

5

1.確保在Roo指向正確的目錄:首,春,Roo的支持

2.編譯時間常常被驗證加劇:首選項,驗證,檢查掛起所有驗證首選項,春天,取消不必要的驗證規則偏好,通用,構建取消自動構建,需要通過右鍵點擊

3.更新的依賴時,該項目然後手工打造:Maven的,更新相關性和更新項目配置

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

問候,戈登·狄更斯

1

1。沒有原始響應

我以前在ROO的早期版本中,在STS的ROO控制檯上經常遇到麻煩。根據我的經驗,通過命令行啓動的ROO shell更具響應能力。我猜在STS和ROO的新版本中,情況有所改善。你正在使用哪個版本?

2.長的時間來編譯

雖然編譯時間是足夠爲我好,罪魁禍首通常是驗證建設者。驗證XML,JSP,Spring配置等的許多驗證構建器也需要很長時間才能完成。我最終禁用了幾個驗證器,將構建時間限制在合理範圍內。

3 Maven和POM

我遇到過類似的問題了。儘管這不完全是一個ROO問題,但由於ROO不提供Maven的替代方案,這對於ROO項目可能是一個嚴重的問題。我認爲在M2-Eclipse的某處可能會有一個選項,可以讓您有選擇地強制更新依賴項。

+0

謝謝你的建議,看來我的袋鼠是給我玩壞招數。每當我修改一個域對象,手動添加一個finder註釋,Roo就不會撿起它(即使shell已經打開)。我通過在添加註釋之前和添加註釋之前輸入「提示」來驗證這一點。第二次「提示」信息只會在30分鐘後出現,並且不會有任何與新發現者有關的消息(我保存了所有信息並進行了編譯)。 – mm24