我想使我的Groovy脚本便携和我在第一行插入:Groovy脚本可执行
#!/usr/bin/env groovy
的问题出现了,当我运行它的目录外的脚本,它不能找到库。我来自python世界,所有在python中的导入都解决了相对脚本的路径。在groovy中,似乎我必须指定-classpath,但我不能在第一个#中做到这一点!线。
任何建议如何解决它?
我想使我的Groovy脚本便携和我在第一行插入:Groovy脚本可执行
#!/usr/bin/env groovy
的问题出现了,当我运行它的目录外的脚本,它不能找到库。我来自python世界,所有在python中的导入都解决了相对脚本的路径。在groovy中,似乎我必须指定-classpath,但我不能在第一个#中做到这一点!线。
任何建议如何解决它?
如果库存储在Maven存储库中,无论您想在哪里运行,都可以使用Grape来获取这些库。
这提供了几个好处:
.groovy
文件。一个简单的例子:
#!/usr/bin/env groovy
@Grab(group='commons-io', module='commons-io', version='2.3')
import org.apache.commons.io.FileUtils
... use FileUtils like normal ...
有上mvnrepository.com已经提供了很多现有的库。
即使您拥有非公共图书馆,放置自己的libraries into a local/private repository也相对容易。
其实它不是库,而是应用程序的一部分 - 只是应用程序包,类等等...... – Soid
你可以把所有这些放到一个Jar中。 – OverZealous
但它需要编译步骤,对不对? – Soid
怎么样: #在/ usr/bin中/ env的常规-cp我:类:路径 – GreyBeardedGeek
我不希望我的硬编码:类:有路径和它不可能使用类似#在/ usr/bin/env groovy -cp'dirname $ 0' – Soid