我有一个正在运行的Grails应用程序,几年前使用Grails 2.0.0.RC1
启动,并在版本之后更新为2.2.5
。在这次更新之后,我偶尔只会在它上面工作,因为项目已经完成了#34;只进行错误修复。
现在我需要对其进行大量工作,因此我计划将其升级到Grails 3.0
,以便使用最新版Grails中添加的新功能。
这个项目有~25个域类,~20个控制器,一堆服务,一些自定义taglib并使用一些插件:jasper,shiro,searchable。
作为一般性建议,documentation says即
升级插件或应用程序时最好的方法(如果您的应用程序使用多个插件,插件需要先升级)是创建一个同名的新Grails 3.0应用程序并将源文件复制到正确的新申请中的位置。
对于我的情况,这真的是最好的方法,还是有其他方法(更快,更少痛苦)来实现这一目标?你已经处理过了吗?你做了什么?
答案 0 :(得分:3)
Grails 3.0是对Grails的完全重写,因此,正如官方文档所述,最好的方法是创建一个新的应用程序,然后在其中复制源文件(src/java
,src/groovy
,grails-app
)和静态资产到asset
文件夹。接下来,您必须迁移配置(例如,Config.groovy
中的配置应该在application.yml
或application.groovy
)和依赖项文件(BuildConfig.groovy
到build.gradle
)。
整个过程在您提供的官方链接中有详细描述。 最后,正如 Emmanuel Rosa 所述,请确保您使用的插件都是Grails 3.x兼容的。
答案 1 :(得分:2)
是
我将一个项目从2.2升级到2.4,直到我创建一个新的2.4项目并复制了所有内容之后,这个项目才能正常工作。我无法想象你使用任何其他方法进行的跳跃是否成功。
用你最喜欢的零食蹲下来,在你的dvcs(git,mercurial等)中打开一个分支并稳步前进。它不会那么糟糕。您的挑战可能是配置和缺少插件。域和控制器等大多数文物都将保持不变。
说到插件,请确保您需要的所有插件都兼容3.0。
答案 2 :(得分:0)
对于将来的参考,您可以将这些链接视为参考:
Grails 3 Upgrading from 3.2.x to 3.3.0
从2升级到3并非不可能。
对于一个小项目,我花了一天时间进行升级。