Запускать сборку библиотеки из приложения gradle как задачу build.dependsOn libraryBuild без включения в качестве зависимости в файл gradle приложения - PullRequest
0 голосов
/ 28 сентября 2019

В моем случае, когда я буду выполнять эту команду ниже

 ./gradlew -q projects

Она вернет вывод, как показано ниже


Корневой проект

Root project 'MyProject'
+--- Project ':app'
\--- Project ':mymodule'

теперь я хочу собрать (значок Run / Green Play для приложения) мой ':app', поэтому ':mymodule' должен собираться автоматически, но без включения ':mymodule' в качестве зависимости в ':app' level build.gradle

что-то вроде этого в файле уровня приложения build.gradle

task gradleBuild(type: GradleBuild ) {
    println "gradleBuild task start"
    doFirst{
        tasks=["mymodule:clean"]
        tasks = ["mymodule:build"]
    }
    doLast {
        tasks = ["mymodule:install"]
        println 'gradleBuild task end.'
    }

}

build.dependsOn gradleBuild

Но это не работает. Я получаю сообщение об ошибке, как показано ниже

Task :app:gradleBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Project 'mymodule' not found in project ':MyProject:app'.

В settings.gradle У меня естьэто

include ':app' , ':mymodule'

1 Ответ

1 голос
/ 28 сентября 2019

Требование автоматического построения проекта библиотеки (в моем случае «mymodule») без включения его в файл build.gradle модуля приложения, когда мы нажимаем значок «Run / green Play», может быть достигнуто с помощью подхода, описанного ниже.

Обычно значок «Выполнить» будет настроен для отдельной конфигурации.Это не в рамках проекта, это в рамках модуля.По этой причине, когда вы нажимаете иконку, «mymodule» не собирается, тогда как если вы вызываете 1. gradlew build из командной строки 2. Sync Project 3. нажмите Make Project

на обоих модулях (app &mymodule).

Чтобы удовлетворить ваши требования, мы должны отредактировать существующую конфигурацию приложения в Android-студии для создания проекта lib "mymodule".

  1. Добавить задачу ниже вприложение build.gradle
task buildModule(type: GradleBuild) {
    buildFile = '../mymodule/build.gradle'
    tasks = ['build']
}
Нажмите на редактировать конфигурацию на панели инструментов

enter image description here

Нажмите на значок «Плюс» в разделе «Перед запуском» и выберите строку со значком «Android».

enter image description here

После выбора появляется подсказка, в которой введите «: app: buildModule» и нажмите «ОК»

enter image description here

Окончательный интерфейс будет

enter image description here

Примените изменения и нажмите значок «Выполнить», чтобыВы пытаетесь раньше.Это автоматически создаст «мой модуль».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...