2010-05-19 77 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回购)。只需添加新的依赖关系即可重新联机。

相关问题