【问题标题】:Grails lib directory doesn't workGrails lib 目录不起作用
【发布时间】:2013-07-28 14:22:59
【问题描述】:

我使用 Grails 2.2.3。我已经把 jar 文件放在 lib 目录下,IDEA 立即解决了依赖关系。但是当我启动应用程序时,我会从这个库中得到NullPointerException 的类。如果我第二次或更多次尝试,我会得到java.lang.NoClassDefFoundError。我找到了很多关于如何解决这个问题的建议,但对我来说没有一个有用。

在 maven 中编译并添加到 lib 目录的库 (mylib-1.jar)。在BuildConfig.groovy 中,依赖被提及为:

dependencies {
    compile 'com.mylib:mylib:1'
}

我试过了

grails clean
grails compile --refresh-dependencies
grails refresh-dependencies

但没有任何帮助。在结果战争文件中,我可以在 WEB-INF/lib 中看到这个库,但即使部署这个战争我也会得到同样的错误。

如何解决?

【问题讨论】:

  • 所以你的/lib 目录中有一个.jar 文件,compile 'com.mylib:mylib:1' 在你的BuildConfig.groovy 中有一个compile 'com.mylib:mylib:1'
  • 没错。但我也试过删除这一行。

标签: grails grails-2.0


【解决方案1】:

您将NoClassDefFoundErrorClassNotFoundException 混淆了。 ClassNotFoundException 发生在您想要的课程不存在时,但是当课程存在时您会得到 NoClassDefFoundError,但它所依赖的课程不存在。所以你错过了这个 jar 文件依赖的另一个 jar 文件。

这是最好使用依赖管理而不是手动将 jar 文件复制到 lib 目录的众多原因之一。如果您使用 Maven 存储库,其中 jar 具有正确的 POM 文件,它们的依赖项会被指定,并且解析器可以为您下载整个依赖关系树,而不必自己查找所有 jar。

【讨论】:

  • 谢谢,现在我有了挖掘的方向。我不明白为什么会这样,因为所有必需的依赖项都是使用 maven 工件连接的,也许我只是错过了一些东西。
  • @Mitya XMitya,尝试使用 JarAnalyzer 找出您缺少的内容kirkk.com/main/Main/JarAnalyzer
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多