出于某些奇怪的原因,我在 gradle 类路径中使用基于本地文件树的 jar。
从子模块(项目)中,我想排除其中一个本地 jar。但我缺少它的语法,有人可以为我提供正确的语法以排除本地 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.
最佳答案
只能排除模块依赖,不能排除文件依赖。
如果您无法从 Maven Central 或 JCenter 等公共(public)存储库解析您的依赖项,您可以创建一个本地 Maven 存储库(甚至在您的项目结构中)并直接从那里解析文件:
repositories {
maven {
url uri("${projectDir}/lib")
}
}
dependencies {
implementation 'org.apache.axis2:axis2-transport-http:1.7.8'
}
请注意,您必须修改 lib
文件夹中的目录结构以匹配 Maven 目录结构(或者定义一个具有自定义结构的 Ivy 存储库)。
关于java - Gradle 'exclude' 本地 `fileTree` 来自子项目的传递依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65309571/