В предыдущем посте мы узнали, как запустить приложение Java в проекте Gradle. Исходный файл Java с методом main является частью проекта, и мы используем задачу JavaExec для запуска кода Java. Мы можем использовать ту же задачу JavaExec для запуска файла скрипта Groovy.
Файл сценария Groovy не имеет явного метода main , но он добавляется при компиляции файла сценария. Имя файла сценария также является именем сгенерированного класса, поэтому мы используем это имя для main свойства задачи JavaExec . Давайте сначала создадим простой файл скрипта Groovy для отображения текущей даты. Мы можем передать дополнительный аргумент с форматом даты, который мы не хотим использовать.
|
01
02
03
04
05
06
07
08
09
10
|
// File: src/main/groovy/com/mrhaki/CurrentDate.groovypackage com.mrhaki// If an argument is passed we assume it is the// date format we want to use.// Default format is dd-MM-yyyy.final String dateFormat = args ? args[0] : 'dd-MM-yyyy'// Output formatted current date and time.println "Current date and time: ${new Date().format(dateFormat)}" |
Наш файл сборки Gradle содержит runScript задачи типа JavaExec . Мы полагаемся на библиотеки Groovy, включенные в Gradle, потому что мы используем localGroovy() как зависимость компиляции. Конечно, мы можем изменить это, чтобы ссылаться на другую версию Groovy, если мы хотим использовать нотацию группы, имени и версии вместе с допустимым репозиторием.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// File: build.gradleapply plugin: 'groovy'dependencies { compile localGroovy()}task runScript(type: JavaExec) { description 'Run Groovy script' // Set main property to name of Groovy script class. main = 'com.mrhaki.CurrentDate' // Set classpath for running the Groovy script. classpath = sourceSets.main.runtimeClasspath if (project.hasProperty('custom')) { // Pass command-line argument to script. args project.getProperty('custom') }}defaultTasks 'runScript' |
Мы можем запустить скрипт со свойством проекта или без него, и мы видим изменения в выводе:
|
1
2
3
4
5
6
|
$ gradle -qCurrent date and time: 29-09-2014$ gradle -q -Pcustom=yyyyMMddCurrent date and time: 20140929$ gradle -q -Pcustom=yyyyCurrent date and time: 2014 |
Код написанный с Gradle 2.1.
| Ссылка: | Gradle Good: запуск Groovy Scripts как приложения от нашего партнера JCG Хьюберта Иккинка в блоге JDriven . |