java - Gradle 'exclude' 本地 `fileTree` 来自子项目的传递依赖

标签 java gradle groovy build build.gradle

出于某些奇怪的原因,我在 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/

相关文章:

java - 使用正则表达式匹配模式,排除某些字符

java - 按日期排序对象列表并应用过滤器

spring-boot - 带有bootRun且未优化启动的Spring Boot应用程序(kotlin,gradle)中的性能低下= false

java - 在 Ubuntu 13.10 上运行 Gradle

jakarta-ee - Java EE 应用程序中的 `rails console`

java - 链接到开始按钮的类不会运行

java - 如何避免一对多单向关联中的插入和更新查询

java - gradle 测试和主要设置相同

ant - groovyc ant 任务失败并出现 fork ="true"

hibernate - 检查当前日期是否在开始日期和结束日期之间