Хотя этот вопрос немного изменился, я начал использовать Groovy для создаваемого DSL, но в итоге использовал Gradle в качестве отправной точки, чтобы лучше справляться со многими задачами на основе файлов, которые я хотел do (например, распаковать и распаковать файлы, выполнить другие программы и т. д.). Gradle основывается на том, что может сделать Groovy, и может быть расширен с помощью плагинов.
// build.gradle
task doUnTar << {
copy {
// tarTree uses file ext to guess compression, or may be specific
from tarTree(resources.gzip('foo.tar.gz'))
into getBuildDir()
}
}
task doUnZip << {
copy {
from zipTree('bar.zip')
into getBuildDir()
}
}
Затем, например (это извлекает bar.zip
и foo.tgz
в каталог build
):
$ gradle doUnZip
$ gradle doUnTar