2010-05-19 114 views
8

我們目前正在開發一個具有相對大量外部依賴性的應用程序,因爲我們正在與一個相當複雜的現有系統進行集成。加快Grails依賴關係的解決方案

依賴關係工作得很好,但是,無論依賴關係是否已經存在於Ivy緩存中,解析依賴關係仍需要幾分鐘的時間。如果緩存需要更新,當然需要更長的時間。

有沒有什麼辦法可以加速這個過程,或者在每次運行時禁用依賴關係解析?這現在正在成爲一個巨大的生產力消耗。

謝謝!

回答

2

也許這是一個有點棘手,但我會做以下

  1. 使用配置DSL的環境元素只能在測試電子郵件生產添加dependecy分辨率見[這裏] [1]
  2. 把所有你的依賴jar在你的grails應用程序的lib forlder中,我會用maven依賴來做:copy。我認爲這可能在常春藤做太
  3. jar文件添加到您的SCM-忽略列表
  4. 使用CI構建系統檢查dependecy分辨率是正確的

    [1]完成:http://www.grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.2環境

0

我不認爲有一個很好的方法來解決執行依賴關係解決所需的時間;據我瞭解,這是Grails在啓動時進行依賴關係解析的一個具體設計決定,因此應用程序無需在運行時拉入依賴關係。

您至少可以通過讓Grails應用程序運行並熱部署任何更改來解決此問題 - 如果您使用最近的Grails版本之一,並且使用嵌入式Tomcat服務器,那麼這種方法非常有效。

+0

Grails滿是你知道什麼(是的,我很生氣)。執行任何命令的速度非常緩慢!熱部署不適用於任何域對象更改或服務更改(儘管它對控制器工作正常)。不知道爲什麼!我剛開始使用grails的一個項目,雖然我喜歡groovy + grails提供的很多功能,但它太慢了!等價的maven/jetty/hibernate/spring/hsql /普通java安裝程序在不到10秒的時間內啓動!代碼使用註釋來寫就像IMO一樣簡單! – les2 2012-06-07 17:31:23

1

嘗試使用--offline開關。這將避免遠程存儲庫並且只搜索文件系統(即,本地maven回購)。只需添加新的依賴關係即可重新聯機。