1

我目前有一个用于我们的“主线”代码的工作区,以及我们在每次迭代结束时创建的每个分支的 1 个工作区。我使用的是 STS 和 grails 1.3.6,没有添加插件和几个 java jar 文件。似乎每当我为新分支创建新工作区时,分支工作区最终都会损坏。我开始在本地遇到构建错误,这些错误围绕缺少的休眠类(例如AbstractEntityPersister. 我在 Windows 7 环境中工作。

我的问题有两个。

一-这个问题可能与缓存问题有关吗?从理论上讲,工作区之间的构建 grails 依赖 jar 应该是相同的,所以我不知道为什么一个工作区会出现问题而一个不会

二-调试上述问题的最佳方法是什么?目前我唯一要做的就是问题视图,然后尽我所能比较两个工作区。

4

2 回答 2

2

默认情况下,grails 使用“$USER_HOME/.grails/grailsVersion/projectName”作为工作目录,因此拥有两个同名和相同 grails 版本的项目会让人头疼。

查看下面的文档,您需要在每个项目 BuildConfig 中设置“projectWorkDir”以防止干扰。

http://grails.org/doc/latest/guide/commandLine.html#buildCustomising

于 2012-10-27T13:52:21.820 回答
1

您的项目工作目录是否具有完全相同的名称?

Grails 创建一个项目缓存文件夹,$USER_HOME/.grails/<grailsVersion>/projects/<basedirname>其中包含已编译的插件和脚本。即使运行grails clean也不会清除这些目录。

同名的两个项目很可能同时更新此文件夹中的文件。从理论上讲,这不应该搞砸任何事情,因为您可能没有同时处理这两个项目,但是如果您在 STS 中都打开了这两个项目,那么它可能会自动构建并弄乱 Grails 使用的自动重新加载机制。

我会尝试使用 asdocumented 设置工作目录BuildConfig.groovy或覆盖文件grails -Dgrails.project.work.dir=work

如果做不到这一点,我建议禁用 STS 中的任何自动构建,因为 Grails 本身会在run-app运行时编译/重新加载类。此外,我会尝试使用文本编辑器(Sublime Text 2 很棒)而不是 STS 来编辑您的应用程序,看看您是否有同样的问题。

于 2012-10-28T03:18:38.123 回答