Исключение зависимости из файлов реализации - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть jar, который я включаю в свой проект Android, используя следующий синтаксис

implementation files('lib/fm.liveswitch.jar')

fm.liveswitch имеет зависимость org.bouncycastle, которую я уже включаю в качестве зависимости моего проект. Как я могу исключить bouncycastle из включения в качестве части jar?

Я уже пробовал каждое из следующих действий:

implementation (files('lib/fm.liveswitch.jar')) { 
exclude group: 'org.bouncycastle' 
}

implementation (files('lib/fm.liveswitch.jar')) { 
exclude module: 'org.bouncycastle' 
}

implementation (files('lib/fm.liveswitch.jar'), { 
exclude group: 'org.bouncycastle' 
})

implementation files('lib/fm.liveswitch.jar') { 
exclude group: 'org.bouncycastle' 
}

Но каждый раз, когда я получаю сообщение об ошибке, подобное приведенному ниже:

Could not find method exclude() for arguments [{group=org.bouncycastle}] on object of type org.gradle.api.internal.artifacts.dependencies.DefaultSelfResolvingDependency

1 Ответ

0 голосов
/ 15 апреля 2020

Когда вы добавляете файловые зависимости, они не имеют метаданных и, следовательно, не имеют транзитивной информации о зависимостях.

Учитывая это, нет смысла пытаться добавить исключение.

Добавление implementation files('lib/fm.liveswitch.jar') только добавит fm.liveswitch.jar к пути к классам, ничего больше.

Теперь, если этот JAR содержит несколько классов bouncycastle внутри, это другая история. Gradle не имеет прямого способа позволить вам контролировать видимость содержимого JAR.

Тогда у вас будет два варианта:

  • Поскольку это локальный JAR, вы можете самостоятельно удалите нарушающие классы из него.
  • Вы можете попытаться использовать преобразования артефактов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...