当前位置:  开发笔记 > 编程语言 > 正文

使用Groovy作为脚本语言

如何解决《使用Groovy作为脚本语言》经验,为你挑选了3个好方法。

我更喜欢使用脚本语言来完成简短的任务,比如一个非常简单的http机器人,批量导入/导出数据到某个地方等等......基本的丢弃脚本和简单的东西.关键是,脚本语言只是编写快速程序的有效工具.至于我在这一点上对Groovy的理解......

如果你是在Groovy编程,你wan't写一个快速脚本,你会不会被迫回到常规的Java语法(而我们知道如何能相比,脚本语言进行卷积)以做更复杂的事情?例如,如果我想做一些http脚本,我不会直接使用java语法来调用Commons HttpClient吗?对我而言,脚本语言的意义在于快速键入和强制构造.这里有另外一个东西,它似乎并不认为有被开发为常规的基于库的任何激励时,已经有这么多优秀的Java一个是在那里,从而使常规似乎是一个Java语言相关的轻微脚本功能.

所以现在我想知道我是否可以转换为Groovy作为脚本语言或继续使用更常见的脚本语言,如Perl,Python或Ruby.



1> Binil Thomas..:

@Zombies,让我向您展示我最近写的一个脚本的快速示例:

def fetch(build, toFile) {
    new FTPClient().with {
        connect ftpServer
        enterLocalPassiveMode()
        login ftpUser, ftpPassword
        changeWorkingDirectory "/var/staging/revision-${build}"
        fileType = FTPClient.BINARY_FILE_TYPE
        toFile.withOutputStream { ostream -> 
            retrieveFile "build-${build}.zip", ostream 
        }
        disconnect()
    }
}

它使用commons-net API,但我认为你会同意它比同类Java程序有更清晰的语法.因此,我不认为使用Java API会破坏使用脚本语言的目的.此外,它可以帮助您利用Java API的现有知识,因此是一种非常实用的方法.



2> Little Bobby..:

Groovy的一个目标是与Java实现透明的互操作性.Groovy是设计"具有脚本功能的Java依赖语言".但是,我不认为这些功能很小 - Groovy有许多静态编程语言(如Java)中没有的功能.

总结一下:如果您根本不关心Java,那么请使用更通用的脚本语言,例如Python或Perl.如果您想以脚本方式使用Java代码库,Groovy是一个不错的选择.



3> armandino..:

Groovy可以非常方便地编写脚本.最近我需要一个脚本来将Maven依赖项提取到一个lib目录中,最后得到一个groovy脚本.这个片段解析一个pom并给你一个罐子列表.非常适合XML解析!

#!/usr/bin/env groovy
def pom = new XmlSlurper().parse('pom.xml')
def repo = "${System.env.HOME}/.m2/repository"

pom.dependencies.dependency.each { dep ->
    def jarName = "${dep.artifactId}-${dep.version}.jar"
    def groupPath = dep.groupId.text().replaceAll('\\.', '/')
    def jarPath = "${repo}/${groupPath}/${dep.artifactId}/${dep.version}"
    println "$jarPath/$jarName"
}

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有