问题
I have a few Java/Maven projects that I want to use in a Grails 2.0.4 project. I have tried various approaches, such as:
- Installing the JAR files in my local maven repository, and executing
grails install-dependency com.foo:my-project:0.0.1-SNAPSHOT
- Copying the JAR files into the
lib
folder of grails. - Adding
compile com.foo:my-project:0.0.1-SNAPSHOT
to the dependencies section ofBuildConfig.groovy
- Uncommenting
mavenLocal()
and passing/home/me/.m2/repository
I may have tried a few other things, such as superstitiously throwing in a grails clean
whenever convenient. In every case grails compile
yields the following result: compilation fails, unable to resolve every reference to any of the classes in either of the JARs.
Any idea what I'm missing?
回答1:
Putting the jar in the lib folder should do the trick. We are using the same approach currently without problems.
回答2:
Adding the jar to the "lib" folder wasn't enough for me. I had to run:
grails compile --refresh-dependencies
After what it worked.
回答3:
If Grails by default don't take the local .jar libraries located in <GRAILS-APP-DIR>/lib
(seems that with Grails 3.X the /lib
folder default configuration is removed) the easy way to enforce it is modifying build.gradle
to add a local directory dependency for it.
For almost all cases is of course better to use the maven repos, however it's possible to have some db-vendor-drivers
or other libraries which aren't in a public repo. To do so for this libraries modify the <GRAILS-APP-DIR>/build.gradle
and add something like:
dependencies {
...
compile fileTree(dir: './lib', include: ['*.jar'])
...
}
If you want you can use another directory (not /lib
) since you're specifying it. Of course use the correct scope (for example for db-vendor-drivers
which probably already are in your application container class path the scope will be runtime
instead of compile
)
Hope it helps,
回答4:
Grails refresh-dependency, clean etc. didn't work for me. What worked for me was exiting Grails daemon and starting Grails again.
来源:https://stackoverflow.com/questions/11215351/how-to-add-java-jar-files-to-grails-project