为了账号安全,请及时绑定邮箱和手机立即绑定

排除 Gradle 插件的传递依赖

排除 Gradle 插件的传递依赖

慕森王 2022-12-28 10:24:23
在 Gradle 中排除传递依赖非常简单:compile('com.example.m:m:1.0') {      exclude group: 'org.unwanted', module: 'x'   }我们如何解决使用插件的情况:apply: "somePlugin"当获取依赖项时,我们意识到插件正在带来一些它自己的传递依赖项?
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

您可以在应用插件后删除依赖项,(从单个配置或所有配置)使用例如。compile.exclude. 请注意,compile解析为“配置”;请参阅Configuration.exclude中的 javadoc 。


编辑


请注意,如果配置已经解析,则排除依赖项可能会失败。


示例脚本


apply plugin: 'java-library'


repositories {

    jcenter()

}


dependencies {

    compile 'junit:junit:4.12'

    compile 'ant:ant:1.6'

    compile 'org.apache.commons:commons-lang3:3.8'

}


// remove dependencies

configurations.all {

  exclude group:'junit', module:'junit'

}

configurations.compile {

  exclude group:'org.apache.commons', module: 'commons-lang3'

}


println 'compile deps:\n' + configurations.compile.asPath


查看完整回答
反对 回复 2022-12-28
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以通过以下方式操作构建脚本本身的类路径:


buildscript {

    configurations {

        classpath {

            exclude group: 'org', module: 'foo' // For a global exclude

        }

    }

    dependencies {

        classpath('org:bar:1.0') {

            exclude group: 'org', module: 'baz' // For excluding baz from bar but not if brought elsewhere

        }

    }

}


查看完整回答
反对 回复 2022-12-28
?
四季花海

TA贡献1811条经验 获得超5个赞

这是强制您的项目严格使用特定版本的 build.gradle.kts 的另一种方法


val grpcVersion = "1.45.1"


implementation("io.grpc:grpc-stub") {

 version {

     strictly(grpcVersion)

   }

}


更多信息可以在 gradle 文档中找到:https ://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html


查看完整回答
反对 回复 2022-12-28
  • 3 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信