如何在Gradle依赖的依赖中指定分类器?

69

假设我想在我的项目中添加guice-assistedinject作为依赖项。它本身指定了guice artifact作为依赖项。如何告诉它使用没有AOP版本的guice?

我知道我可以这样做,但是我能否在不排除guice模块的情况下一步完成?

dependencies {
  compile (group: 'com.google.inject.extensions', name: 'guice-assistedinject', version: '3.0') {
    exclude module: 'guice'
  }
  compile group: 'com.google.inject', name: 'guice', version: '3.0', classifier: 'no_aop'
}
1个回答

107

没有更简单的解决方案。您可以使用短依赖项符号来缩短代码 (例如 "com.google.inject:guice:3.0:no_aop")。


这只适用于 .jar 构件吗?如果 Artifactory 或类似的二进制仓库中有 guice-3.0-no_app.zip,那么同样适用吗? - AKS
10
在这种情况下,答案是 "com.google.inject:guice:3.0:no_app@zip" 可以使用。 - AKS
5
如果该模块有(正确的)POM 文件,@zip 就不需要了。@zip 的含义是“只获取此 zip 构件,无需查看 POM 文件,也无需获取传递依赖项”。 - Peter Niederwieser
2
任何语法都不指定版本,使用分类器(classifier)的情况下(从BOM中获取版本)。 - c.sankhala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接