【问题标题】:Upgrading from Grails 1.0.3 to 1.3.5从 Grails 1.0.3 升级到 1.3.5
【发布时间】:2010-12-19 07:13:09
【问题描述】:

我刚刚继承了一个用 Grails(1.0.3 版)编写的应用程序,并希望将其升级到最新版本(1.3.5 版)。

我似乎找不到列举两个版本之间差异的参考。我知道有“grails upgrade”命令——但考虑到版本之间的巨大差异,这是最好的选择吗?

我今天也问了一个类似的问题,关于升级 Groovy 版本,以及需要注意的语法差异(版本 1.3.5 和 1.7.5 之间) - 但我认为最好分开这两个问题要重点关注。

非常感谢,

~阿基

【问题讨论】:

    标签: grails


    【解决方案1】:

    自 1.0.3 以来,情况发生了很大变化,不幸的是,grails upgrade 不会为您做太多事情。

    我想到的两个重大变化是,在 1.0.3 和之前的版本中存在一个错误,其中 1 多和多对多集合 (hasMany/belongsTo) 应该是延迟加载的,但事实并非如此。这在 1.0.4 中得到了修复,一些用户发现他们依赖于这种行为并看到了问题。大多数人没有,只是看到了显着的性能提升。所以要注意延迟加载异常。

    另一个改变是插件不再位于项目根目录的“插件”文件夹中,但现在存储在您的 $HOME/.grails 文件夹下。如果您已将插件签入源代码管理(特别是如果您进行了任何更改),那么您可以通过向 BuildConfig.groovy(1.1 中引入的新文件)添加属性来恢复到 1.0.x 行为:

    grails.project.plugins.dir = 'plugins'
    

    我在这里描述了我升级插件和应用程序的过程:How to install Grails plugin from source code? - 这是一个插件项目,但应用程序升级也是如此。

    log4j 配置从基于属性的配置更改为 DSL。这意味着如果您从 Config.groovy 获取配置设置,则 log4j 行为将是默认行为,因此您需要对其进行转换。

    另一个不需要但应该考虑的更改是,现在首选来自 Maven 存储库的 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 路差异)。

    【讨论】:

    • 嗨,伯特 - 感谢您的回复。我会投票给你的答案(我试过了),但我没有足够的声望点来这样做。我刚刚重新开始开发,虽然我已经成为会员 18 个月左右,但我并没有真正使用过(或贡献过)stackoverflow 社区。这将改变。但再次,非常感谢您的详细回答/输入。非常感谢 - 我希望这个问题和答案能帮助许多其他希望升级的 Grails 人。 ~阿基
    【解决方案2】:

    最新版本是 1.3.6(截至 12 月 15 日)。您可以从每个版本的Release Notes 获取更改列表。此外,文档中的upgrading from previous versions 链接是一个很好的更改来源。

    【讨论】:

    • 嗨,Rghuram - 感谢您的回复。我会投票给你的答案(我试过了),但我没有足够的声望点来这样做。我刚刚重新开始开发,虽然我已经成为会员 18 个月左右,但我并没有真正使用过(或贡献过)stackoverflow 社区。这将改变。但是,再次感谢您抽出宝贵的时间。 ~阿基
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多