【问题标题】:Upgrade an application from Grails 2.2.5 to 3.0将应用程序从 Grails 2.2.5 升级到 3.0
【发布时间】:2015-11-26 19:20:56
【问题描述】:

我有一个正在运行的 Grails 应用程序,几年前从 Grails 2.0.0.RC1 开始,然后一个又一个版本更新为 2.2.5。在这次更新之后,我只是偶尔在它上面工作,因为项目已经“完成”,只做错误修复。

现在我需要做很多工作,所以我计划将它升级到 Grails 3.0 以便使用最新版本的 Grails 中添加的新功能。

这个项目有大约 25 个域类、大约 20 个控制器、一堆服务、一些自定义标记库并使用一些插件:jasper、shiro、可搜索。

作为一般建议,documentation says

升级插件或应用程序(如果您的应用程序使用多个插件,则需要先升级插件)最好的方法是创建一个新的同名 Grails 3.0 应用程序并将源文件复制到正确的新应用程序中的位置。

对于我的情况,这真的是最好的方法,还是有其他方法(更快、更不痛苦)来实现这一目标?你已经处理过这个问题了吗?你做了什么?

【问题讨论】:

  • 这可能对slideshare.net/SpringCentral/… 有所帮助。这可能会给你一些提示。我还将具有 35 多个域和 100 多个控制器的应用程序从 grails 2.5.1 升级到 3.1.0。疼痛难忍:(

标签: grails grails-3.0 grails-2.2


【解决方案1】:

是的。

我将一个项目从 2.2 升级到 2.4,但直到我创建了一个新的 2.4 项目并复制了所有内容后,它才能正常工作。我无法想象您使用任何其他方法进行的跳跃会取得成功。

只需蹲下你最喜欢的零食,在你的 dvcs(git、mercurial 等)中打开一个分支,然后稳步前进。它不会那么糟糕。您的挑战可能是配置和缺少插件。大多数人工制品(例如域和控制器)将保持不变。

说到插件,请确保您需要的所有插件都与 3.0 兼容。

【讨论】:

  • 感谢您的回复,但我也想从面临 grails 2 到 3 迁移的人那里得到答案。否则我会按照你的方式;)。谢谢。
  • SpringSecurity 插件,还不兼容!
【解决方案2】:

Grails 3.0 是对 Grails 的彻底重写,因此,正如官方文档所说,最好的方法是创建一个新应用程序,然后首先在其中复制源文件(src/javasrc/groovygrails-app ) 和静态资产到asset 文件夹。接下来你必须迁移配置(例如Config.groovy 中的配置现在应该在application.ymlapplication.groovy 中)和依赖文件(BuildConfig.groovybuild.gradle)。

整个过程在您提供的官方链接中得到了很好的描述。 最后,正如 Emmanuel Rosa 所说,确保您使用的插件都与 Grails 3.x 兼容。

【讨论】:

  • 这没有帮助。我已经阅读了官方文档,并且在我的问题中也提到了它。我的问题是针对任何进行过真正 grails 2->3 迁移的人提出的,这可以告诉我他真正遇到了什么问题。我做这件事的时间有限,所以我需要在开始之前选择正确的方法,做一个估计。
  • 我经历了从 grails 2 到 grails 3 的迁移,这就是我所做的。如果对您没有帮助,我很抱歉。
  • 你刚刚复制和粘贴模型、控制器、服务、视图和外部 java/groovy 源没有任何问题吗?
  • 显然这取决于应用程序的复杂性。我的很简单(6 个域类),所以我一步一步地按照文档进行操作,一切都很好。我的旧应用程序是在 grails 2.1.1 上构建的,因此我必须在控制器中进行一些更改(将代码从列表操作移动到索引),将 dataSource 配置从 DataSource.groovy 移动到 application.yml(使用 yaml 语法而不是 groovy 语法)。另一个很大的不同在于构建系统,所以我必须学习 Gradle 并将配置从 BuildConfig.groovy 移动和转换到 build.gradle。还要注意内容协商。
  • @RickyGo 嗨,你的 cmets 至少和你的答案一样有价值,如果不是更多的话。你能把它们包括在你的答案中吗?谢谢!
【解决方案3】:

对于将来的参考,您可以将这些链接视为参考:

Upgrading Grails 3

Grails 3 Upgrading from 3.2.x to 3.3.0

从 2 升级到 3 并非不可能。

  1. 您需要查看更改日志
  2. 查看配置和文件夹结构的变化
  3. 记住新插件和过时插件
  4. 配置您的 IDE(如果您使用过)- gradle、groovy .. 使用 Grails 3 Intellij 似乎是最佳选择
  5. 最后,您需要进行大量测试 - 使用空基,使用旧数据,

对于一个小项目,我花了一天时间进行升级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2022-01-23
    • 2017-06-27
    • 2014-05-07
    • 1970-01-01
    • 2018-06-07
    • 2020-08-24
    相关资源
    最近更新 更多