Я пытаюсь определить две новые задачи Gradle, buildAll
и pubLocal
, для выполнения других задач в определенном порядке.Orchestrating Gradle build invocations с настраиваемыми задачами
Когда вызывается gradle buildAll
, я хочу, чтобы Gradle выполнял то же самое, как если бы я выполнил gradle clean build writePom
(см. Ниже для writePom
).
Когда выполнено gradle pubLocal
, я хочу, чтобы Gradle выполнял то же самое, как если бы был выполнен gradle buildAll install
.
Вот моя лучшая попытка до сих пор:
// build.gradle
task writePom << {
pom {
project {
groupId 'mygroup'
artifactId 'mylib'
version version
inceptionYear '2015'
licenses {
license {
name 'Blah'
url 'blah'
distribution 'blah'
}
}
}
}.writeTo("build/libs/pom.xml")
}
task buildAll(dependsOn: clean, build, writePom)
task pubLocal(dependsOn: buildAll, install)
Когда я бегу gradle buildAll
на это, я получаю:
[email protected]:~/tmp/myapp$./gradlew buildAll
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/myuser/tmp/myapp/build.gradle' line: 67
* What went wrong:
A problem occurred evaluating root project 'myapp'.
> Could not find method buildAll() for arguments [{dependsOn=task ':clean'}, task ':build', task ':writePom'] on root project 'myapp'.
Любые идеи о том, где я буду криво?
Спасибо @thecodesmith_ (+1) ** да ** это была копия-паста. Я отредактировал мой оригинальный код, чтобы показать, что я на самом деле цитирую все правильно, и я заверяю вас, что это происходит в моем фактическом 'build.gradle', который имеет правильные кавычки. Любые другие идеи? – smeeb