16

我有一些想要在 Grails 2.0.4 项目中使用的 Java/Maven 项目。我尝试了各种方法,例如:

  1. 在我的本地 maven 存储库中安装 JAR 文件并执行grails install-dependency com.foo:my-project:0.0.1-SNAPSHOT
  2. 将 JAR 文件复制到libgrails 的文件夹中。
  3. 添加compile com.foo:my-project:0.0.1-SNAPSHOT到依赖项部分BuildConfig.groovy
  4. 取消注释mavenLocal()和传递/home/me/.m2/repository

我可能已经尝试过其他一些事情,比如在grails clean方便的时候迷信地扔一个。在每种情况下都会grails compile产生以下结果:编译失败,无法解析对任一 JAR 中任何类的每个引用。

知道我错过了什么吗?

4

4 回答 4

17

将 jar 放在 lib 文件夹中应该可以解决问题。我们目前正在使用相同的方法,没有问题。

于 2012-06-26T21:08:19.040 回答
11

如果默认情况下Grails不采用位于的本地.jar<GRAILS-APP-DIR>/lib(似乎在Grails 3.X中删除了/lib文件夹默认配置),那么执行它的简单方法是修改build.gradle为它添加本地目录依赖项。

对于几乎所有情况,使用maven存储库当然更好,但是可能有一些db-vendor-drivers或其他不在公共存储库中的库。为此库修改<GRAILS-APP-DIR>/build.gradle并添加如下内容:

dependencies {
    ...
    compile fileTree(dir: './lib', include: ['*.jar'])
    ...
}

如果你愿意,你可以使用另一个目录(不是/lib),因为你正在指定它。当然使用正确的范围(例如db-vendor-drivers,可能已经在您的应用程序容器类路径中的范围将runtime代替compile

希望能帮助到你,

于 2016-04-20T11:14:02.947 回答
9

将 jar 添加到“lib”文件夹对我来说还不够。我不得不跑:

grails compile --refresh-dependencies

在它起作用之后。

于 2014-08-05T13:24:44.803 回答
0

Grails 刷新依赖、干净等对我不起作用。对我有用的是退出 Grails 守护进程并再次启动 Grails。

于 2015-12-02T12:34:42.290 回答