如何将“非 mavenized”jar 依赖项添加到 grails 项目(Grails 3.x)

Posted

技术标签:

【中文标题】如何将“非 mavenized”jar 依赖项添加到 grails 项目(Grails 3.x)【英文标题】:How to add a “non-mavenized” jar dependency to a grails project (Grails 3.x) 【发布时间】:2015-11-27 04:22:33 【问题描述】:

我正在尝试查找有关如何将本地/非 maven jar 文件添加到我的 Grails 3.x 项目的文档和代码示例?

我找到了单独的线程How to add a non-maven jar to grails - 但这仅适用于 grails 2.3,并且文件结构和配置在 3.x 中进行了大修。

任何帮助和(尤其是)代码示例都会很棒! .jar在本地项目目录下,我打算和.war一起打包部署。

此外,一旦我添加了依赖项,我应该能够从控制器和服务文件中调用它的方法吗?还是我也需要将它们包括在内?

谢谢!

【问题讨论】:

您可以自己下载jar并将其放入lib文件夹中,它将完美运行。无需修改 buildconfig。 在 grails 3.0.1 中没有“lib”文件夹,这是从 2.x 到 3.x 的变化之一。 【参考方案1】:

Grails 3 使用 Gradle,因此 Grails 并没有具体说明包含本地 jar。就像在 build.gradle 文件的 dependencies 块中添加文件依赖项一样简单。

根据Gradle documentation on File Dependencies:

要添加一些文件作为配置的依赖项,您只需将文件集合作为依赖项传递:

dependencies 

    ...

    compile files('libs/a.jar', 'libs/b.jar')
    // or
    compile fileTree(dir: 'libs', include: '*.jar')

上面的例子展示了两种方法来包含存在于本地libs/目录中的jar;你可以做任何一个/或。 jar 可以位于文件系统上的任何位置,只要确保指向正确的路径即可。

要在您的应用程序中使用依赖项中的类,您将像往常一样将它们包含在您的服务、控制器和所有其他类中。假设 libs/a.jar 有一个 org.example.Something 类,您可以像这样在 Grails 类的顶部添加一个导入:

import org.example.Something

【讨论】:

太棒了!!非常感谢 dpcasady。一个异常完整的答案,即使对于 SO。 grails 3中好像没有lib文件夹(你所谓的libs文件夹)来添加jar文件,docs.grails.org/3.0.x/guide/upgrading.html 这只是一个任意示例,展示了指向文件系统上任何目录的不同方法,将其称为 libs 或将其与 grails 项目相关并没有什么特别之处。您可以在那里创建一个目录或引用文件系统上的任何其他现有文件夹。 在 grails 3.1.x 中,lib 目录需要与 src、test 和 grails-app 目录位于同一根目录,这样示例中的相对路径才能正常工作。

以上是关于如何将“非 mavenized”jar 依赖项添加到 grails 项目(Grails 3.x)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?

当它们包含我创建的工件时,如何指示 maven 自动添加依赖项 jar?

如何告诉 M2Eclipse 将 jar 文件安装为 maven 依赖项

如何从 lib 文件夹中添加 Maven 依赖 jar 文件

xml 将本地jar添加到maven依赖项

如何在 pom.xml 中添加\安装到新创建\第三方 jar 的 maven 依赖项