Ответ 1
Это должно работать:
apply plugin: 'idea'
task blah{
// do something
}
tasks.idea.dependsOn(blah)
Я собираюсь потерять рассудок об этом. У меня есть файл build.gradle
, который выглядит примерно так:
apply plugin: 'idea'
task blah{
// do something
}
idea{
// some stuff
dependsOn blah
}
и я получаю следующее:
Could not find method dependsOn() for arguments [task ':blah'] on root project ...
Я не могу понять, что такое правильный синтаксис. Любая помощь?
Это должно работать:
apply plugin: 'idea'
task blah{
// do something
}
tasks.idea.dependsOn(blah)
Может быть, мой рабочий пример был бы полезен - фрагменты build.gradle: (gradle версия 1.6)
ear {
doFirst {
tasks.buildWar.execute();
}
...
}
task deployProj <<{
tasks.ear.execute()
tasks.copyEar.execute()
tasks.copyJar.execute()
}
task buildWar(type: GradleBuild) {
buildFile = 'mysubproject/build.gradle'
tasks = ['war']
}
task copyEar(type: Copy) {
from earPath
into "$System.env.JBOSS_HOME" + deploymentPath
}
task copyJar(type: Copy) {
from jarPath
into libPath
}
copyEar.mustRunAfter 'ear'
copyJar.mustRunAfter 'ear'
У меня была очень похожая ошибка:
Could not find method runEC2Step1DownloadSource() for arguments [{dependsOn=task ':docker:buildCopyEC2BuildFiles'}, task ':docker:runEC2SetupVariables', [email protected]] on project ':docker' of type org.gradle.api.Project.
Моя проблема заключалась в том, что моя задача runEC2Step1DownloadSource
была определена так:
task runEC2Step0CreateMachine(dependsOn: buildCopyEC2BuildFiles, runEC2SetupVariables) {
doLast {
// A bunch of stuff
}
}
И решением было добавить массив в список зависимых задач:
task runEC2Step0CreateMachine(dependsOn: [buildCopyEC2BuildFiles, runEC2SetupVariables]) {
doLast {
// A bunch of stuff
}
}
Обратите внимание на дополнительные [] квадратные скобки в списке зависимых задач.