Как добавить зависимость с помощью метода в Gradle - PullRequest
0 голосов
/ 25 июня 2019

Я могу добавить зависимость модуля, используя любой из

  • aar зависимость
  • модуль локального проекта Прямо сейчас я могу сделать то же самое, используя ниже

    if (foo(":awesomemodule")) {
        implementation 'com.example.app:awesomemodule:1.0'
    
    }
    else {
        implementation project(':awesomemodule')
    }
    

Теперь я хочу повторить этот код для нескольких зависимостей и хочу создать метод для одного и того же.

Я хочу что-то вроде этого

customAddImplementation(':awesomemodule')

ext.customAddImplementation = { moduleName ->
    if (foo(moduleName)) {
        return implmentation('com.example.app' + moduleName + ':1.0')
    } else {
        return project(path: moduleName)
    }
}

Но этот подход не работает, так как определение implementation() не найдено, когда я добавляю свои зависимости, используя customAddImplementation(':awesomemodule')

1 Ответ

1 голос
/ 25 июня 2019

Примерно так должно работать:

def customModulePath(String moduleName) {
    if (foo(moduleName)) {
        return "com.example.app:$moduleName:1.0")
    } else {
        return project(":$moduleName")
    }
}

dependencies {
    implementation(customModulePath('awesomemodule'))
}

И бонусный момент: так как функция не пытается добавить путь к пользовательскому модулю в зависимости от реализации, а просто возвращает свой путь, вы можете использовать егодобавить зависимости в любую другую конфигурацию.

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