Groovy脚本的即时编译和打包

在本文中将会涉及到:

使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递。

使用 GroovyClassLoader 加载 Groovy class。

使用 AntBuilder 来构建 Jar 包。

开始之前

关于本文

也许您写了一些有趣或实用的 Groovy 脚本并希望与您的朋友分享,可是您并不想强 迫他们安装 Groovy,所以您也许想要做一个小工具让您的朋友们能够用它编译您的 Groovy 脚本并且生成一个可执行的 Jar 包。本文将介绍如何制作一个小工具让您的 Groovy 脚本能够在没有安装 Groovy 的环境下也能被即时编译和打包成为 可执行的 Jar,并通过此过程介绍 Groovy 的一些有趣的特性。

在本文中,我们将设计并实现一个命令行工具,并 通过它来完成对 Groovy 脚本的即时编译和打包。我们将使用 CliBuilder 来实现程序对命令行的处理;使用 AntBuilder 来处理打包的问题;使用 FileSystemCompiler 类来实现对 Groovy 脚本文件的编译。

目标

通过本示例了解 Groovy 中 CliBuilder 的使用方法,以及 AntBuilder 在 Groovy 中的应用。

先决条件

Eclipse IDE

Groovy plugin for Eclipse

Apache Ant Java library(您可以在这里找到下载地址 http://ant.apache.org/bindownload.cgi)

系统要求

由于 Eclipse IDE 和 Groovy 语言都是跨平台的,所以您可以在任何平台上编写本示例中的程序,并 将它运行在任何平台上。

利用 CliBuilder 设计命令行程序

用 Groovy 来编写脚本是开发跨平台工具的一个 不错的途径。随着脚本复杂程度的不断增长,您可能需要在您的脚本中处理命令行选项。而处理这些选项或参数并且根据情 况显示相应的帮助信息可能会是件麻烦事。 Groovy 捆绑了 Apache Commons CLI 库作为它的一部分,然而它同时也提供了 一个使用起来简单得多的 CliBuilder。那么,接下来我们看看该如何使用它。

为程序设置命令行选项

清单 1. 创建 CliBuilder 实例及定义命令行选项

// 创建 CliBuilder 实例,并定义命令行选项
def cmdline = new CliBuilder(usage: 'GroovyPackman -[chflms] [date] [prefix]')
cmdline.h( longOpt: 'help', required: false, 'show usage information' )
cmdline.d( longOpt: 'destfile', argName: 'destfile', required: false, args: 1, 'jar
destintation filename' )
cmdline.m( longOpt: 'mainclass', argName: 'mainclass', required: true, args: 1, 'fully
qualified main class' )
cmdline.c( longOpt: 'groovyc', required: false, 'Run groovyc' )
cmdline.s( longOpt: 'sourcepath', argName: 'sourcepath', required: true, args: 1, 'fully
path to the mainclass. Must be specified with .groovy file path when -c option used.')

在以上代码段 中,我们首先创建 CliBuilder 的实例。CliBuilder 拥有一个叫做 Usage 的属性,可以用它来显示程序的使用说明等信息 。在这里,它作为参数传递给构造函数将可以告诉程序的使用者有哪些选项可以使用。接着,我们使用名字为一个字母的方 法来定义命令行选项,longOpt 属性允许选项被指定为 -h 或 --help 均可。argName 属性用来指定在使用说明中显示的选 项的参数名。而 args 属性用来指定选项所需的参数个数。required 属性用来告诉命令行解析器当前选项是否是必须的。 函数中最后一个参数用来指定该选项的描述信息。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编译
, 脚本
, 命令
, groovy
, required
, 命令行编译
, eclipse插件groovy
, 一个
, 命令行选项
eclipse打包jar
ios 编译打包脚本、groovy脚本、jenkins groovy脚本、java调用groovy脚本、soapui groovy 脚本,以便于您获取更多的相关知识。

时间: 2024-11-30 06:59:35

Groovy脚本的即时编译和打包的相关文章

即时编译和打包您的 Groovy 脚本(转)

  在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class. 使用 AntBuilder 来构建 Jar 包. 开始之前 关于本文 也许您写了一些有趣或实用的 Groovy 脚本并希望与您的朋友分享,可是您并不想强迫他们安装 Groovy,所以您也许想要做一个小工具让您的朋友们能够用它编译您的 Groovy 脚本并且生成一个可执行的 Jar 包.本文将

在没有安装Groovy的环境编译和打包Groovy脚本

在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class. 使用 AntBuilder 来构建 Jar 包. 开始之前 关于本文 也许您写了一些有趣或实用的 Groovy 脚本并希望与您的朋友分享,可是您并不想强迫他们安装 Groovy,所以您也许想要做一个小工具让您的朋友们能够用它编译您的 Groovy 脚本并且生成一个可执行的 Jar 包.本文将介绍

android应用资源预编译,编译和打包全解析

我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件.这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的.在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件.在本文中,我们就详细分析XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下坚实的基础.         在前面Android资源管理框架(Asset Manager)简要介绍和学习计划一

Groovy脚本文件中的静态main方法

本文介绍Groovy中的静态main方法.先看如下代码: class Test1 { public Test1() { println "TEST1" } } class Test2 { public Test2() { println "TEST2" } static void main(args) { new Test1() } } 此代码不论用groovy命令行还是用groovyConsole来运行都要出错,好像是引用 groovy.lang.MissingM

groovy脚本中(非类中)可以使用静态变量吗

问题描述 groovy脚本中(非类中)可以使用静态变量吗 如问题: 在一个groovy脚本中以下代码: static int a = 1; //现在这样是报错 // 业务逻辑 // xxxx a++: 我只希望a初始化一次,注意是在脚本中,不是在定义class中 换句话说,我是想在脚本groovy.lang.Script子类里放静态变量

scala + intellij idea 环境搭建及编译、打包

大数据生态圈中风头正旺的Spark项目完全是采用Scala语言开发的,不懂Scala的话,基本上就没法玩下去了.Scala与Java编译后的class均可以运行于JVM之上,就好象.NET中F#与C#的关系.下面进入正题: 1.下载scala sdk http://www.scala-lang.org/download/ 直接到这里下载sdk,目前最新的稳定版为2.11.7,下载后解压就行 (后面在intellij idea中创建.scala后缀源代码时,ide会智能感知并提示你设置scala

[Groovy]Groovy脚本的5种运行方式

目录:        groovyConsole 图形交互控制台        groovysh shell命令交互        通过IDE运行Groovy脚本        用命令行执行Groovy脚本        用Groovy创建Unix脚本 Groovy脚本是一些定义在文本文件中的语句和类.它和其他脚本语言的使用类似,它有多种方式可以运行.  [一].groovyConsole 图形交互控制台  在终端下输入:groovyConsole  启动交互式控制台模式,可以编写代码执行,如下

如何使用ant对java程序进行构建、编译、打包等

问题描述 最好从ant的安装.配置等开始,到ant对java程序进行构建.编译.打包等,要详细的步骤,谢谢 解决方案

反编译再打包时遇到意外字符 $ 等怎么半?

问题描述 反编译再打包时遇到意外字符 $ 等怎么半? 成功反编译了一个.dll文件,做了修改后,编译一直通不过,因为反编译出来的代码中含有大量类似下面的语句: static System.Func <>f__am$cache21; static System.Func <>f__am$cache22; static System.Func <>f__am$cache23; static System.Func <>f__am$cache24; static