如何使用或引用Grails项目中的Java项目?

如何使用或引用Grails项目中的Java项目?,java,grails,compilation,Java,Grails,Compilation,我有一个正常工作的grails项目。最近,我们的团队决定在应用程序中添加一个额外的功能,该功能已经在我们自己的Java独立应用程序中实现。“所以”,我想,“我只需要在我的工作区中引用独立的Java项目”。所以我这样做了——引用了Grails one中的Java项目,并从src/Groovy中的Groovy类调用了该服务。当我尝试运行web项目时,出现了一个编译错误: Error Compilation error: startup failed: unable to resolve class

我有一个正常工作的grails项目。最近,我们的团队决定在应用程序中添加一个额外的功能,该功能已经在我们自己的Java独立应用程序中实现。“所以”,我想,“我只需要在我的工作区中引用独立的Java项目”。所以我这样做了——引用了Grails one中的Java项目,并从src/Groovy中的Groovy类调用了该服务。当我尝试运行web项目时,出现了一个编译错误:

Error Compilation error: startup failed: 
unable to resolve class com.CycleManager
它说错误是CycleManager类的导入行

为什么groovy找不到被引用的项目?我做错了什么


谢谢。

这是因为grails无法看到公开服务的jar/类。您需要在grails类路径(不在您的工作区中)中包含jar。这可以通过在grails应用程序的依赖项部分的BuildConfig.groovy文件中提到jar来实现

dependencies {
             // your jar name
    compile ("com.CycleManager")
}
这是在应用程序中包含jar的正确方法


另外:Grails希望您的jar在它的ivy缓存中。如果它不在常春藤缓存中,它将从快照文件夹中提取

您使用什么来构建应用程序?当您进行构建时,您需要确保包含类的类或jar文件位于您的类路径上。我没有嵌入一个罐子(至少不是故意的)。但我并不知道grails是如何构建被引用的项目的。但是,在STS中,如果我使用Project->Properties->Build path->Projects并添加一个项目,它应该引用我的项目。是吗?我没有用罐子(至少我不这么认为)。我正在引用工作区中的项目。我一定要把它当罐子用?我试着复制你的情况,但也遇到了同样的问题。我认为grails无法看到通过ide引用的项目(对此不确定)。