Groovy脚本可执行文件

时间:2012-05-24 00:29:30

标签: shell groovy

我想让我的groovy脚本可移植,我插入第一行:

#!/usr/bin/env groovy

当我在其目录之外运行脚本时,问题就出现了,它找不到库。我来自python世界,python中的所有导入都解析了相对脚本的路径。在groovy中,似乎我必须指定-classpath但是我不能在第一个#中做到这一点!线。

有任何建议如何解决?

1 个答案:

答案 0 :(得分:9)

如果库存储在可以在任何地方运行的Maven存储库中,那么一种解决方案就是使用Grape来获取库。

这提供了几个好处:

  1. 您根本不必担心类路径
  2. 您不必分发库 - 只需确保客户端上可以使用Groovy
  3. 只下载一次库,因此即使您升级应用程序,也只需重新分发.groovy文件。
  4. 一个简单的例子:

    #!/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