【问题标题】:Grails JAR file in lib directory not found未找到 lib 目录中的 Grails JAR 文件
【发布时间】:2012-01-09 06:36:25
【问题描述】:

我有一个位于src/java 的Java 类,它引用来自外部JAR 的类。我将 JAR 文件复制到 lib 目录。当我使用 grails run-app 运行应用程序时,我收到一个错误,它找不到导入的类。

为 Grails 项目放置 JAR 的正确位置是什么?是否有一些特殊的命令可以让 Grails 识别新添加的 JAR 文件?

我在 OS X 上运行带有 Java 1.6.0_29 的 Grails 2.0.0。

跟进:问题的 JAR 来自 Apache HttpComponents。更具体地说:

commons-codec-1.4.jar
commons-logging-1.1.1.jar
httpclient-4.1.2.jar
httpclient-cache-4.1.2.jar
httpcore-4.1.2.jar
httpmime-4.1.2.jar

其中的类文件编译成Java 1.3,应该没问题。

~/temp/org/apache/http $ file HttpResponse.class 
HttpResponse.class: compiled Java class data, version 47.0 (Java 1.3)

【问题讨论】:

    标签: java grails jar


    【解决方案1】:

    很奇怪,我运行了grails clean,然后运行了grails run-app,它编译并运行良好。

    【讨论】:

    • 我仍然有问题...使用 grails 2.0.3
    • 你把jar添加到构建路径了吗?
    • 也为我工作。圣杯 2.2.4。谢谢。
    【解决方案2】:

    lib中添加或删除jar文件时需要运行

    grails compile --refresh-dependencies
    

    为了让 Grails 注意到这些变化。

    【讨论】:

      【解决方案3】:

      添加 jar 的正确方法是将其添加到“BuildConfig.groovy”中。您可以在编译时、运行时等指定是否需要它。例如:

      dependencies {        
              build 'org.apache.httpcomponents:httpcore:4.1.2' 
              build 'org.apache.httpcomponents:httpclient:4.1.2' 
              runtime 'org.apache.httpcomponents:httpcore:4.1.2'
              runtime 'org.apache.httpcomponents:httpclient:4.1.2'
      } 
      

      请注意,您可能还需要取消注释 Buildconfig.groovy 中的 mavenCentral() 行,以便解决依赖关系。

      参见“依赖解析”部分here

      【讨论】:

      • 从 Grails 2.0.0 开始,mavenCentral() 默认没有注释:)
      • 我也面临同样的问题。即使我将我的 jar 放在项目 lib 文件夹中,它根本没有加载:-( 如果我想添加我自己的 jar 需要添加不在 maven Central 中怎么办?
      • 经过几个小时的努力(至少),您的回答,尤其是文档链接救了我。 +1,谢谢!
      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 2013-03-06
      • 2014-12-02
      • 2010-10-31
      相关资源
      最近更新 更多