Groovy:如何为全局范围的字段分配动态值
通过使用,我们可以为私有范围的字段分配一些值,以便这些字段可以全局访问 我有以下脚本:Groovy:如何为全局范围的字段分配动态值,groovy,Groovy,通过使用,我们可以为私有范围的字段分配一些值,以便这些字段可以全局访问 我有以下脚本: import groovy.transform.Field; def cli = new CliBuilder() cli.usage = 'groovy Test.groovy -e <environment-name>' cli.header = '\nAvailable options (use -h for help):\n' cli.with { h(longOpt: 'h
import groovy.transform.Field;
def cli = new CliBuilder()
cli.usage = 'groovy Test.groovy -e <environment-name>'
cli.header = '\nAvailable options (use -h for help):\n'
cli.with {
h(longOpt: 'help', 'Usage Information', required: false)
e(longOpt: 'environment', 'Environment Name', args: 1, required: true)
}
def options = cli.parse(args)
if (!options || options.h) {
return
}
@Field def env = options.e
println env
但是如果使用println options.e
则不使用@Field def env=options.e
它将打印int
如何将动态值分配给全局范围的变量?将其移动,这样就不会将分配与字段的定义相关联
import groovy.transform.Field;
@Field def env
def cli = new CliBuilder()
cli.usage = 'groovy Test.groovy -e <environment-name>'
cli.header = '\nAvailable options (use -h for help):\n'
cli.with {
h(longOpt: 'help', 'Usage Information', required: false)
e(longOpt: 'environment', 'Environment Name', args: 1, required: true)
}
def options = cli.parse(args)
if (!options || options.h) {
return
}
env = options.e
println env
导入groovy.transform.Field;
@字段定义环境
def cli=new CliBuilder()
cli.usage='groovy Test.groovy-e'
cli.header='\n可用选项(使用-h获取帮助):\n
cli.with{
h(longOpt:'help','Usage Information',必填项:false)
e(longOpt:'environment','environment Name',参数:1,必需:true)
}
def options=cli.parse(args)
如果(!options | | options.h){
返回
}
env=options.e
打印环境
My small dirty解决方案:
import groovy.transform.Field;
@Field def env
def cli = new CliBuilder()
cli.usage = 'groovy Test.groovy -e <environment-name>'
cli.header = '\nAvailable options (use -h for help):\n'
cli.with {
h(longOpt: 'help', 'Usage Information', required: false)
e(longOpt: 'environment', 'Environment Name', args: 1, required: true)
}
def options = cli.parse(args)
if (!options || options.h) {
return
}
env = options.e
println env