Как получить имя скрипта, выполняемого в Groovy?Как получить имя скрипта в Groovy
Это не аргумент командной строки и, следовательно, массив args не помогает.
Как получить имя скрипта, выполняемого в Groovy?Как получить имя скрипта в Groovy
Это не аргумент командной строки и, следовательно, массив args не помогает.
Вы можете получить настоящее имя сценария следующим образом.
def scriptName = this.class.getName()
println "Script FQCN : " + scriptName
Он выведет имя скрипта (который не что иное, как класс) с именем пакета - FQCN (полное имя класса).
Если вы хотите только имя сценария, а не пакет, вы можете использовать
println "Script Simple Name : " + this.class.getSimpleName()
Я делаю это для многих сценариев в классе поддержки, так itsraghz «ы ответ не работает для меня.
Если вы используете this.class или getClass() из класса поддержки, вызываемого скриптом, вы получите имя класса поддержки, а не имя сценария. Чтобы получить имя сценария каждый раз, когда я использую:
// Get the executed script as a (java) File
File scriptFile = new File(getClass().protectionDomain.codeSource.location.path)
// This holds the file name like "myscript.groovy"
def scriptName = scriptFile.getName()
// strip the extension to get "myscript"
def withoutExt = scriptName.take(scriptName.lastIndexOf('.'))