【问题标题】:Compile groovy files using very old groovy compiler使用非常古老的 groovy 编译器编译 groovy 文件
【发布时间】: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 ......不过,正如另一条评论所说,对于这样的古老代码,您在命令行上可能是最安全的。 ;-)

标签: grails groovy


【解决方案1】:

虽然使用 Groovy 1.7.2 编译的类可以在当前的 Groovy 上正常运行,但不能保证反过来。我建议不要使用 GGTS,尤其是对于这么早的版本。

Groovy 目前在旧发行版的下载位置存在问题,但我们正在努力解决这个问题。您当然可以从 maven central 获取 maven jar 并从 github repository 获取命令行脚本,甚至可以使用它来尝试使用 ant dist 自己构建发行版,或者只使用 ant install 进行本地安装。

最后当然还有使用 grails zip 本身的 jar 的选项,defectus 已经在 cmets 中提供了这个链接

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多