У меня есть удаленная зависимость в моем проекте Android, которую я хотел бы изменить (заменить одну из ее зависимостей более новой).
По сути, это означает, что я хотел бы отредактировать файл .pom этой библиотеки.
У меня нет доступа к коду библиотеки.
У меня есть эта строка в моем build.gradle:
implementation 'com.acme:the-sdk:1.1.0@aar'
Похоже, что задача publishToMavenLocal была бы решением: она создала бы локальную копию the-sdk, включая файлы .pom и .aar.
Затем я бы изменил файл .pom и добавил mavenLocal() как 1-й элемент в списке репозиториев.
Я не слишком знаком с Gradle.
Как я могу использовать publishToMavenLocal (или другой инструмент) для создания этой локальной копии библиотеки?
@JFMeier Вероятно, это был бы лучший вариант в более «стандартной» ситуации, но в моем случае зависимость acme использует «переупакованную» версию публичной библиотеки, которую я хочу переопределить. Поэтому добавление обновленной зависимости к моему build.gradle создает конфликты.
Под "переупаковкой" вы имеете в виду, что они изменили groupId или artifactId?
Да, они изменили как groupId (с com.facebook.android на com.acme.partner), так и artifactId (с audience-network-sdk на facebook)
В Maven я бы явно исключил зависимость «facebook» вашей зависимости и добавил бы «заменяющую» зависимость в ваш проект. Все это было бы возможно в pom вашего проекта без манипуляций с проектом acme. Я предполагаю, что Gradle предлагает вам аналогичные функции, но я недостаточно хорошо владею Gradle, чтобы сказать вам.
Вы правы, это действительно так просто! Спасибо, что указали мне правильное направление.
Как предложил JFMeier, мне не нужно изменять проект acme.
Мне нужно только сказать Gradle исключить зависимость (чтобы я сам мог включить ее в желаемую версию).
implementation ('com.acme.the-sdk:1.1.0@aar') {
transitive = true
exclude module: 'facebook'
}
implementation 'com.facebook.android:audience-network-sdk:4.99.1'
Разве не было бы проще добавить «более свежую» в ваш собственный проект, чтобы вы эффективно перезаписали зависимость вашей зависимости?