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