Передать имя фляги Spring Boot скрипту Gradle Groovy - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть скрипт gradle, который запускается после создания jar-файла SpringBoot:

task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

Пока что скрипт gradle просто печатает сообщение:

println "hello world from groovy version ${GroovySystem.version}"

Это прекрасно работает в моей сборке.

Gradle RunScript

Задача: runScript hello world из отличной версии 2.4.15

Я хочу что-то вроде:

println "hello world generated jar file name is ${jarFileName}"

То, что я хочу сделать, это передать сгенерированное SpringBoot имя фляги или имя фляги в build/libs/my-service-0.1.1.jar или что бы то ни было.

Так будет напечатано:

Привет, мир, сгенерированный файл jar - my-service-0.1.1.jar

Как я могу это сделать?

Вот что я попробовал:

postpackage.groovy:

println "hello world from groovy version ${GroovySystem.version}"

println "hello world from groovy version $bootJar.archiveName"

build.gradle:

task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

Вот ошибка:

Задача: runScript FAILED привет мир из заводной версии 2.4.15 Исключение в теме "главная" groovy.lang.MissingPropertyException: Нет такого свойства: bootJar для класс: почтовая упаковка в org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java:66)

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Вы должны иметь возможность ссылаться на bootjar как «jar».

Пример вашей выписки:

println "hello world from groovy version ${jar.archiveName}"
0 голосов
/ 10 ноября 2018

Ответ:

Передайте аргумент через build.gradle следующим образом:

task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
    args "${bootJar.archiveName}"
}

Ссылка это в сценарии, как это:

println "hello world from groovy version ${GroovySystem.version}"

println "hello world from groovy version ${args[0]}"

Работает просто отлично:

: bootJar UP-TO-DATE: runScript hello world из отличной версии 2.4.15

Привет, мир из отличной версии my-service-0.1.1.jar

BUILD SUCCESSFUL in 2s
5 actionable tasks: 1 executed, 4 up-to-date
12:36:00 PM: Task execution finished 'runScript'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...