未找到lib目录中的Grails JAR文件

时间:2012-01-09 06:36:26

标签: java grails jar

我有一个位于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)

3 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:6)

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

grails compile --refresh-dependencies

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

答案 2 :(得分:5)

添加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