В предыдущем посте мы узнали, как запустить приложение 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.groovy package 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.gradle apply 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 -q Current date and time : 29-09-2014 $ gradle -q -Pcustom=yyyyMMdd Current date and time : 20140929 $ gradle -q -Pcustom=yyyy Current date and time : 2014 |
Код написанный с Gradle 2.1.
Ссылка: | Gradle Good: запуск Groovy Scripts как приложения от нашего партнера JCG Хьюберта Иккинка в блоге JDriven . |