【问题标题】:How to understand declaring dependency with `configuration` in gradle?如何理解在 gradle 中使用“配置”声明依赖关系?
【发布时间】:2015-07-08 05:32:05
【问题描述】:

在一个gradle文件中,需要添加com.google.guava:guava:16.0的依赖,可以这样写:

compile group: 'com.google.guava', name: 'guava', version: '16.0'

没有configuration

或使用配置defaultcompileruntimetest

compile configuration: 'default', group: 'com.google.guava', name: 'guava', version: '16.0'
compile configuration: 'compile', group: 'com.google.guava', name: 'guava', version: '16.0'
compile configuration: 'runtime', group: 'com.google.guava', name: 'guava', version: '16.0' 
compile configuration: 'test', group: 'com.google.guava', name: 'guava', version: '16.0' 

运行gradle compileJava时没有错误。

但如果我尝试其他值,例如 testCompileany-other-value,它会报告:

FAILURE:构建失败并出现异常。

* What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> Module version :gradle-test:unspecified, configuration 'compile'
  declares a dependency on configuration 'testCompile' which is
  not declared in the module descriptor for com.google.guava:guava:16.0

在哪里可以找到module descriptor 文件及其声明的配置?

我找到了https://repo1.maven.org/maven2/com/google/guava/guava/16.0/guava-16.0.pom,是module descriptor吗?但我找不到任何关于 default/compile/... 配置的信息。

【问题讨论】:

  • 您到底想达到什么目的?如果你想将番石榴添加到编译类路径,只需使用compile com.google.guava:guava:16.0。如果您只想将其用于测试,请使用 testCompile com.google.guava:guava:16.0

标签: maven configuration gradle dependencies


【解决方案1】:
【解决方案2】:

Maven 不支持多种配置(常春藤支持),是的,在您的情况下,pom 文件是模块描述符。只使用没有配置的符号应该没问题。另外,我无法重现您报告的失败的 testCompileJava 任务

【讨论】:

  • 是的,对于一个ivy模块描述符,我可以清楚地看到ivy-???.xml中声明的配置,所以我知道我可以使用哪个。但是对于一个 maven,由于没有明确的声明,我怎么知道我可以使用哪一个(尽管指定任何配置都是正确的)
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2016-04-15
  • 2017-08-13
  • 2020-04-30
  • 1970-01-01
  • 2013-06-25
相关资源
最近更新 更多