2
@Field
を使用すると、プライベートスコープフィールドに値を割り当てて、グローバルにアクセスできるようにすることができます。それは印刷し使用println options.e
場合Groovy:グローバルスコープフィールドに動的値を割り当てる方法
Caught: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at Test.main(Test.groovy)
Caused by: groovy.lang.MissingPropertyException: No such property: options for class: Test
at Test.<init>(Test.groovy)
... 1 more
しかし@Field def env = options.e
なし:私は次のエラーを取得していますgroovy Test.groovy -e int
:として私はそれを実行している場合は
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
:私は、スクリプトを次のようしている
int
。
どのようにグローバルスコープ変数に動的値を割り当てることができますか?
私の小さな汚いソリューション: https://gist.github.com/chfstudio/51e58e56abb1e29ea53a68e7fd71197e – chf