2016-03-24 2 views

ответ

6

Вы можете получить настоящее имя сценария следующим образом.

def scriptName = this.class.getName() 
println "Script FQCN : " + scriptName 

Он выведет имя скрипта (который не что иное, как класс) с именем пакета - FQCN (полное имя класса).

Если вы хотите только имя сценария, а не пакет, вы можете использовать

println "Script Simple Name : " + this.class.getSimpleName() 
1

Я делаю это для многих сценариев в классе поддержки, так 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('.')) 
Смежные вопросы