Выполните несколько задач перед сборкой - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть две задачи: test -задача и poeditorPull -задача (которая извлекает последние строки из poeditor-api), и я хочу, чтобы моя задача buildRelease запускалась после того, как обе были выполнены.

До сих пор я использовал task.dependsOn, но вчера я обнаружил, что gradle заканчивает сборку apk до того, как завершается poeditorPull-task

tasks.whenTaskAdded { task ->
  if (task.name == 'assembleInternalRelease' || task.name == 'assembleProductionRelease') {
    task.dependsOn('test')
    task.dependsOn('poeditorPull')
  }
}

Как я уже говорил ранее, это не работаетчто я хочу, а именно ставить задачи test и poeditorPull перед assemble*Release

как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Как оказалось, код работал нормально, но так как плагин работает асинхронно, моя задача не может дождаться завершения

@M.Ricciuti извините, что потратил ваше время, тем не менее спасибо

0 голосов
/ 18 сентября 2018

Я перефразировал свой ответ, чтобы сделать его более кратким и ясным ...

Проблема в том, что assemble* задачи создаются динамически плагином Android, поэтому в вашем скрипте сборки вы не можете напрямую ссылаться на эти задачи. Вы должны использовать блок afterEvaluate: он будет выполнен после того, как все задачи будут созданы, так что вы сможете создать зависимость от 'assemblyInternalRelease' для ваших собственных задач

afterEvaluate { project ->
    assembleInternalRelease.dependsOn tasks.getByName('test')
    // or tasks.getByName('assembleInternalRelease').dependsOn tasks.getByName('test')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...