首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从configurations.runtimeClasspath中排除依赖树

从configurations.runtimeClasspath中排除依赖树
EN

Stack Overflow用户
提问于 2022-03-03 12:26:42
回答 1查看 373关注 0票数 0

我有以下的gradle依赖关系:

代码语言:javascript
复制
dependencies {
    implementation 'org.keycloak:keycloak-core:17.0.0'
    implementation 'org.keycloak:keycloak-server-spi:17.0.0'
    implementation 'org.keycloak:keycloak-server-spi-private:17.0.0'
    implementation 'org.keycloak:keycloak-services:17.0.0'

    implementation 'com.amazonaws:amazon-kinesis-producer:0.14.10'
}

我需要创建一个包含'com.amazonaws:amazon-kinesis-producer:0.14.10'所有传递依赖项的jar的胖jar,而不是其余的。到目前为止,我的任务是将所有的jars复制到一个目录中:

代码语言:javascript
复制
task copyToLib(type: Copy) {
    into "jars"
    duplicatesStrategy "exclude"
    from configurations.runtimeClasspath.findAll { file ->
        file.name != "keycloak-services-17.0.0.jar" && file.name != "keycloak-core-17.0.0.jar"
                && file.name != "keycloak-server-spi-17.0.0.jar" && file.name != "keycloak-server-spi-private-17.0.0.jar"
                && file.name != "keycloak-common-17.0.0.jar"
    }
}

jar { dependsOn copyToLib }

它排除了所有我不想要的基于密钥披风的特定jars,但我也希望不包括那些传递的依赖项。有什么简单的方法可以从依赖节点开始删除整个树吗?

附带注意:我不能仅仅从我的dependencies {}部分中删除那些依赖项,因为我需要它们作为IntelliJ并编译代码,而当我将jars添加到Docker映像时,我需要将它们排除在外,因为密钥斗篷基映像已经包含了所有这些依赖项,而且在添加这些依赖项时会出现冲突。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 08:57:35

看起来,可以使用以下方法实现这一点:

代码语言:javascript
复制
    from configurations.runtimeClasspath
            .exclude(group: 'org.keycloak', module: 'keycloak-core')
            .exclude(group: 'org.keycloak', module: 'keycloak-services')
            .exclude(group: 'org.keycloak', module: 'keycloak-server-spi-private')
            .exclude(group: 'org.keycloak', module: 'keycloak-server-spi')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71337222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档