Как вызвать внешнюю команду в gradle для проекта Spring Boot и затмения IDE? - PullRequest
0 голосов
/ 02 мая 2018

В моем проекте Gradle Spring Boot 2.0 мне нужно вызывать приведенную ниже команду каждый раз, когда bar.tmpl.html изменяется и сохраняется в eclipse IDE:

handlebars src/main/resources/static/templates/bar.tmpl.html -f src/main/resources/static/js/bar.tmpl.js

Эта команда работает при запуске в оболочке в корне каталога проекта Spring.

Я хочу автоматизировать этот процесс при разработке в STS eclipse IDE с использованием devtools. Каждый раз, когда редактирование файла шаблона руля выполняется, проект должен быть перестроен, автоматически выполняя указанную выше команду.

Как этого добиться?

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете написать пользовательскую задачу типа exec , чтобы запустить команду и заставить ее выполнить непрерывный . В качестве альтернативы вы можете привязать задачу к точке вашего жизненного цикла, например, к задаче processResources.

Задача типа Exec для запуска команды:

task updateHandelbar(type: Exec) {
    inputs.files "${projectDir}/src/main/resources/static/templates/bar.tmpl.html"
    outputs.files "${projectDir}/src/main/resources/static/templates/bar.tmpl.html"
    commandLine 'cmd', '/c', 'handlebars src/main/resources/static/templates/bar.tmpl.html -f src/main/resources/static/js/bar.tmpl.js'
}

Переместить задачу в любую точку жизненного цикла:

Синтаксис: <someTask>.shoudlRunAfter(<anotherTask>)
Пример: processResources.shouldRunAfter(updateHandelbar)

Запустить задачу непрерывно и ждать изменения файлов:

Это будет выполнять задачу непрерывно. Означает, что он перезапускает задачу при изменении входных файлов:

gradlew <someTask> -continuous

Комбинация каждого фрагмента кода может позволить вам получить ожидаемое поведение.

...