多个Grails项目命名相同的Build问题

时间:2012-10-26 20:14:00

标签: grails setup-project dependency-management

我目前有一个用于'Mainline'代码的工作区,以及我们在每次迭代结束时创建的每个分支的一个工作区。我使用的是STS和grails 1.3.6,没有添加插件和几个java jar文件。似乎每当我为新分支创建新工作区时,分支工作区最终都会被破坏。我开始在本地获取构建错误,围绕缺少的hibernate类,如AbstractEntityPersister。我在Windows 7环境中工作。

我的问题是双重的。

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

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

2 个答案:

答案 0 :(得分:2)

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

看一下下面的文档,你需要在每个项目BuildConfig中设置'projectWorkDir'以防止干扰。

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

答案 1 :(得分:1)

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

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

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

我会尝试在BuildConfig.groovy中设置工作目录,或使用grails -Dgrails.project.work.dir=work as documented覆盖该文件夹。

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