每次我对Grails应用程序进行微小更改时,部署它需要10-15秒。大部分时间都在'解决依赖关系'......
Welcome to Grails 1.3.7 - http://grails.org/
...
Resolving dependencies...
Dependencies resolved in 9868ms.
以下是我的设置的一些细节:
已调查的地区:
从日志中提取......
resolution report resolve 802ms artifacts dl 86ms
resolution report resolve 8492ms artifacts dl 150ms
Dependencies resolved in 9909ms.
额外信息: 通过部署我的意思是使用'run-app',通过重新部署我的意思是更改一个文件,迫使Grails自动执行'run-app'。我没有任何其他与网络相关的性能问题,并且拥有32MB的宽带,1MB的宽带互联网连接。
对于基准测试,过去我曾经使用过类似大小的应用程序,其中“Resolving Dependencies”花了大约1秒钟。这个设置是Grails 1.3.6,Shiro安全插件,一个类似的小项目,在Windows XP Service Pack 3机器上有几个域模型(Intel Core 2 Duo 2.2Ghz,2GB RAM)然后我使用的是NetBeans 6.9.1。 / p>
额外信息2 :附上完整的常春藤日志here
我每次更改的文件非常少,因此重新部署需要15秒时非常令人沮丧。
有没有人有关于如何减少“解决依赖关系......”所需时间的任何提示?
答案 0 :(得分:3)
在评论中跟进我们的对话。
如果您确定问题不是您的网络,我知道减少依赖项解析时间的最佳方法是确保您没有任何快照依赖项。快照依赖项是活动开发中依赖项的版本,因此Ivy需要实际访问外部服务器以检查该快照的新版本是否可用。
我注意到你提到你正在使用webtest 3.0.1 gr ails插件。我知道这个插件取决于两个快照罐。因此,删除此插件应该可以缩短依赖项解析所需的时间。我不知道如何覆盖插件中指定的依赖项。在webtest插件的情况下,我不认为有一个版本的依赖项是可接受的,而不是指定的。你可以做的最好的事情是唠叨插件作者删除快照。
答案 1 :(得分:1)
刚刚发现(通过询问)您可以使用本地存储库来解析快照依赖项。这可能比通过网络更快:
答案 2 :(得分:0)
请在此处查看我的回答。依赖于定义不明确的maven工件的插件可能会导致grails每次都看起来更新版本。