我刚刚继承了用Grails(版本1.0.3)编写的应用程序,并希望将其升级到最新版本(版本1.3.5)。
我似乎无法找到枚举两个版本之间差异的参考。我知道有“grails升级”命令 - 但鉴于版本差异很大,这是最好的选择。
我有一个类似的问题,我今天也要求升级Groovy的版本,以及需要注意的实际差异(版本1.3.5和1.7.5之间) - 但我认为最好分开关注每个问题的两个问题。
非常感谢,
〜秋
答案 0 :(得分:7)
自1.0.3以来,情况发生了很大变化,不幸的是grails upgrade
对你没有太大作用。
我想到的两个重大变化是1.0.3和之前的错误,其中1-many和many-to-many集合(hasMany / belongsTo)应该是延迟加载但不是。这在1.0.4中得到修复,一些用户发现他们依赖于行为并看到了问题。大多数人没有,只是看到了显着的性能提升。所以请注意延迟加载异常。
另一个变化是插件不再位于'plugins'文件夹中项目的根目录中,但现在存储在$ HOME / .grails文件夹下。如果您已将插件检查到源代码管理中(特别是如果您进行了任何更改),则可以通过向BuildConfig.groovy(1.1中引入的新文件)添加属性来恢复1.0.x行为:< / p>
grails.project.plugins.dir = 'plugins'
我在这里描述了升级插件和应用程序的过程:How to install Grails plugin from source code? - 它是关于一个插件项目,但同样适用于应用程序升级。
log4j配置从基于属性的配置更改为DSL。这意味着如果您从Config.groovy中删除配置设置,则log4j行为将是默认行为,因此您需要转换它。
另一个不需要但应该考虑的变化是Maven repos中的Ivy jar文件解析现在优于将jar文件放在lib目录中。你仍然可以将它们放在lib目录中,但让Ivy下载它们一次会更加干燥。
您可能还会发现某些插件在1.3中不起作用,因此可能会有一些迁移工作。
最近有两本书涉及Grails 1.2 / 1.3,“Grails:快速入门指南”:http://www.amazon.com/dp/1934356468/和“Grails入门,第二版”:http://www.infoq.com/minibooks/grails-getting-started - 您可能应该阅读检查那些因为它们是最新的Grails书籍。
总的来说,只要您不尝试就地升级,它就不应该那么糟糕。使用我在我引用的另一篇文章中描述的方法,即创建空应用程序和差异文件以查看更改的内容(基本上是3向差异)。
答案 1 :(得分:2)
最新版本是1.3.6(截至12月15日)。您可以从每个版本的Release Notes获取更改列表。此外,upgrading from previous versions链接文档是一个很好的变化来源。