Grails 项目在运行时不会从其自己的 lib 目录中的库中解析依赖关系

Posted

技术标签:

【中文标题】Grails 项目在运行时不会从其自己的 lib 目录中的库中解析依赖关系【英文标题】:Grails project does not resolve dependencies during runtime from libraries inside its own lib directory 【发布时间】:2012-11-26 04:11:17 【问题描述】:

女士们,先生们,

我有一个非常简单的 grails 应用程序,我需要通过直接类依赖 API 调用来调用我们公司的平台 API。

我有一个悬而未决的问题here on Stack。它与 Grails 项目的依赖管理有关。虽然我无法解决这个问题,但我将我们的内部工件转储到 grails 项目的 lib 目录中。我们的工件内置了 Ivy 依赖文件,所以我只指定了“根”jar,希望 Grails 依赖管理能够使用传递依赖解决其余的问题。我为依赖项指定了“运行时”。

应用程序似乎很好地解决了依赖关系,但在一定程度上。例如, 它解析 jar A 中的 A、B、C、D 等类。它解析 jar B 中的 A 类,但不解析 jar B 中的 B 类。B 类在 A 类中被引用,但我收到一条“ClassNotFoundException”消息B类。

问题: 我在为项目指定依赖项时做错了什么?为什么 Grails 运行时资助 jar B 中的 A 类而不资助 B 类?我可以很容易地在 Eclipse 中查看 B 类,它会在与 A 类完全相同的 jar 中找到它。什么给出了?

干杯,

【问题讨论】:

【参考方案1】:

每当您将新罐子放入lib 时,您都必须这样做

grails compile --refresh-dependencies

让 Grails 看到它。

【讨论】:

您可能还需要运行 'grails clean'。

以上是关于Grails 项目在运行时不会从其自己的 lib 目录中的库中解析依赖关系的主要内容,如果未能解决你的问题,请参考以下文章

Grails 项目不会自动重新加载

Grails,无法运行WAR文件

如何调试 grails 运行时异常?

grails 5`build/libs/`中的`-plain.war`是啥?

使用 Gradle 运行时设置 Grails 端口

Grails STS 项目不会启动 Web 服务