我有一个Java项目(不使用Groovy),但我想在groovysh中与我的Java类进行交互。是否有一种简单的方法可以使用我的项目中的pom文件来设置groovysh的类路径?
仅供参考,我发现了一种方法,我认为它更加优雅,当项目使用gmaven-plugin时:运行mvn groovy:shell
,你可以准备就绪并发出命令,groovysh可用的类路径与该项目可用的类路径相同!
MOP 可能会有所帮助:
Scripting Goodies
Other times, you just need need the CLASSPATH so you can use it in a manually crafted script your running. Try this.
mop classpath org.apache.camel:camel-example-pojo-messaging
更新: 上述命令可用于输出现有maven工件的类路径。例如:
$ ./mop classpath org.hibernate:hibernate-core:3.3.2.GA
输出以下内容:
/home/pascal/opt/mop/repository/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar:/home/pascal/opt/mop/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar:/home/pascal/opt/mop/repository/commons-collections/commons-collections/3.1/commons-collections-3.1.jar:/home/pascal/opt/mop/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/home/pascal/opt/mop/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar:/home/pascal/opt/mop/repository/javax/transaction/jta/1.1/jta-1.1.jar:/home/pascal/opt/mop/repository/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar
可以在其他地方使用。就像我说的那样,它可能有帮助,但我不确定它是否适合您的需求(似乎需要将工件部署在远程存储库中)。
您可以使用-cp
将它们添加到类路径中,例如:
groovysh -cp some.jar:another.jar