【发布时间】:2015-06-17 11:45:04
【问题描述】:
我正在尝试帮助客户使用这个使用 Grails 1.3.1 构建的旧 (2010) 应用程序。它是更大系统的一部分。我们有源代码和一些正在运行的实例(包括一个测试平台),但最初的开发人员早已不在。客户需要对应用程序进行非常小的更改。它仅在一个 Groovy 文件中。我已经设法在 Eclipse (Luna) 中打开项目并安装了 GGTS。看起来没问题,Eclipse 将类文件输出到 target-eclipse 目录。
计划是直接在运行应用程序的测试机器上替换受影响的类文件。问题是:它不起作用。它在 Tomcat6 上运行,但我在日志中找不到任何相关内容(这也很奇怪)——如果我替换了这个类文件,应用程序就无法启动。我最好的猜测是,这是因为我机器上的 Groovy 编译器(由 GGTS 使用)比测试台上的要新得多。 Grails 1.3.1 包含 groovy-all-1.7.2.jar,我相信和编译器版本一样,我找不到它作为可下载的工具,或者作为 Eclipse 插件(它只支持版本2.X 及更高版本)。
有什么建议吗?我可以使用 jar 中的旧版本 groovy 以某种方式编译文件吗?欢迎快速和肮脏的修复。他们希望避免升级正在运行的系统,因为这可能需要大量工作。
我以前从未使用过 Groovy 或 Grails,但我是一位经验丰富的 Java 开发人员。
【问题讨论】:
-
你能在你的机器上安装指定版本的 Grails,然后构建 WAR 文件/从命令行运行它吗?
-
我只安装了 Grails(和 Groovy)作为 GGTS 3.6.4 Eclipse 插件,根据 Eclipse 市场中的信息窗口,它支持 Groovy 1.7/1.8/2.x 和 Grails 1.3/2。 x,但在 Eclipse 中我无法选择比 Groovy 2.0 更低的版本,而且我在 Eclipse 中找不到 Grails 的任何设置。 WAR 是我的另一个问题 - Eclipse 自动生成一些类文件,但没有 WAR。 Ant 任务清理、编译、构建等都失败了,因为似乎每个类都有一些“[grailsTask] java.util.zip.ZipException: error in opening zip file”。
-
Tim 说的:不要为此使用 ggts,从命令行构建。
-
谢谢@NathanHughes,我会试试的!
-
几年前我不得不支持一个 Grails 1.1.1 项目,STS 停止支持该项目;但是,NetBeans 支持较旧的 Grails 版本。如果您需要 IDE,您可能会考虑使用 NetBeans ......不过,正如另一条评论所说,对于这样的古老代码,您在命令行上可能是最安全的。 ;-)