По некоторым странным причинам я использую банки на основе локального файлового дерева в пути к классам gradle.
из подмодуля (проекта) я хочу исключить одну из локальных банок. но мне не хватает синтаксиса для этого, может ли кто-нибудь предоставить мне правильный синтаксис, чтобы исключить локальные файлы jar в качестве транзитивной зависимости здесь?
dependencies {
implementation(project(":my-simple-project")) {
exclude fileTree(dir: "../lib/", include: ["axis2-1.7.8/axis2-transport-http-1.7.8.jar"])
}
}
ИЛИ
dependencies {
implementation(project(":my-simple-project")) {
exclude files("../lib/axis2-1.7.8/axis2-transport-http-1.7.8.jar"])
}
}
Я получил ошибку как
* What went wrong:
A problem occurred evaluating project ':my-simple-project'.
> Could not find method exclude() for arguments [directory '../lib/'] on DefaultProjectDependency{dependencyProject='project ':my-simple-project'', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency.
🤔 А знаете ли вы, что...
Java активно развивается и обновляется с появлением новых версий и функциональных улучшений.
Вы можете исключить вложенную банку, используя следующий синтаксис:
fileTree(dir: 'lib').exclude {details ->
(details.file.canonicalPath.contains("axis2-1.7.8")
&& details.file.canonicalPath.contains('axis2-transport-http-1.7.8'))}
ИЛИ
fileTree(dir: 'lib').exclude { details ->
details.file.text.contains('axis2-transport-http')
}
Ссылка: Gradle fileTree исключает все, кроме определенных каталогов
Вы можете исключить только зависимости модулей, но не зависимости файлов.
Если вы не можете разрешить свои зависимости из общедоступных репозиториев, таких как Maven Central или JCenter, вы можете создать локальный репозиторий Maven (даже внутри структуры вашего проекта) и разрешать файлы непосредственно оттуда:
repositories {
maven {
url uri("${projectDir}/lib")
}
}
dependencies {
implementation 'org.apache.axis2:axis2-transport-http:1.7.8'
}
Обратите внимание, что вы должны изменить структуру каталогов в своей папке lib
, чтобы она соответствовала структуре каталогов Maven (или, в качестве альтернативы, определить репозиторий Ivy с пользовательской структурой).