【问题标题】:How to add a "non-mavenized" jar dependency to a grails project如何将“非 mavenized”jar 依赖项添加到 grails 项目
【发布时间】:2012-04-21 05:17:47
【问题描述】:

我是个新手。我在 Windows 7 上从命令行(无 IDE)使用 grails 2.0.3。

我只是运行 grails 文档中的“hello world”示例。

我有一个不在 maven 中的自定义 jar,我想在我的项目中使用它。我将它添加到 lib 文件夹并进行了刷新依赖项。我修改了控制器以从 jar 中导入一个类。当我执行“run-app”时,编译器抱怨找不到类。

我在网上看到几个例子,人们必须像这样在 BuildConfig.groovy 中添加一行:runtime 'httpclient:httpclient:3.0.1'。但由于我没有使用 maven 或 ivy,如何在我的类路径中获取该 jar?

我上面提到的例子是http://grails.1312388.n4.nabble.com/External-Jar-in-Grails-td4388010.html

【问题讨论】:

    标签: grails


    【解决方案1】:

    Grails 2.0-2.2

    好吧,我终于知道我需要做什么了。假设我的 jar 名为“mylib.jar”。我需要将其重命名为 mylib-1.0.jar 并将其移至 lib 目录。然后我需要在 BuildConfig.groovy 中添加以下内容:

    dependencies {
            // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
    
            // runtime 'mysql:mysql-connector-java:5.1.16'
        runtime 'mylib:mylib:1.0'
        }
    

    我想这对除了我以外的所有人来说都是显而易见的。希望这对其他人有帮助。

    Grails 2.3-...

    只需将一个罐子放入lib/。不要修改BuildConfig.groovy (c) kaskelotti

    【讨论】:

    • 这里有同样的问题,即使在你的帮助下,我似乎也无法让它工作ez-vcar。将 ez-vard JAR 添加到 lib 文件夹,尝试依赖刷新,添加到 BuildConfig compile "ez-vcard:0.7.3"... 仍然不起作用,留下以下 Error WARNING: Specified dependency definition runtime(ez-vcard:0.7.3) is invalid! Skipping.. 任何你能想到的 Kyle将不胜感激,非常愚蠢的问题,让我发疯
    • 只是一个疯狂的猜测,但名称上的破折号可能会导致问题。会尝试重命名没有破折号的罐子。
    • 还是谢谢,没用...觉得有更深层次的问题,马上去发帖
    • 对我来说,该设置在 Grails 2.3.6 上工作,方法是不将依赖项添加到 BuildConfig。只需将 jar 放到 lib/ 目录即可。
    • 正如我的实验所示(在 Grails 2.3.11 上),有必要在 BuildConfig.groovy 定义依赖关系。否则,依赖项将仅包含在编译器类路径中。它不会添加到运行时类路径 (run-app)、WAR 和 deps 报告中。要解析的工件应命名为“lib/[artifactId]-[version].jar”。
    【解决方案2】:

    如果您的 jar 在 lib 文件夹中,并且在 buildconfig.groovy 中也有条目,并且如果您在构建路径中找不到 jar,请尝试使用以下命令。

    grails compile --refresh-dependencies
    

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多