Maven 如何理解在gradle中用'configuration'声明依赖关系?

Maven 如何理解在gradle中用'configuration'声明依赖关系?,maven,configuration,gradle,dependencies,Maven,Configuration,Gradle,Dependencies,在gradle文件中,我需要添加com.google.guava:guava:16.0的依赖项,我可以写: compile group: 'com.google.guava', name: 'guava', version: '16.0' 没有配置 或者使用配置默认值或编译或运行时或测试: compile configuration: 'default', group: 'com.google.guava', name: 'guava', version: '16.0' compile con

在gradle文件中,我需要添加
com.google.guava:guava:16.0
的依赖项,我可以写:

compile group: 'com.google.guava', name: 'guava', version: '16.0'
没有
配置

或者使用配置
默认值
编译
运行时
测试

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' 
运行
gradlecompilejava
时没有错误

但如果我尝试其他值,如
testCompile
任何其他值
,它将报告:

失败:生成失败,出现异常

* 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
在哪里可以找到
模块描述符
文件及其声明的配置


我找到了,它是模块描述符吗?但是我找不到关于
default/compile/..
配置的任何信息。

Maven不支持多个配置(ivy支持),是的,pom文件是您案例中的模块描述符。只使用符号而不进行配置应该可以。此外,我无法重现您报告的失败的testCompileJava任务。Gradle定义了一些依赖项配置,这些配置来自maven repo:


我们可以在gradle依赖项配置中使用它们。

您到底想实现什么?如果您想将guava添加到compile类路径,只需使用
compile com.google.guava:guava:16.0
。如果您只想将其用于测试,只需使用
testCompile com.google.guava:guava:16.0
Yes,对于常春藤模块描述符,我可以清楚地看到
ivy-??.xml
中声明的配置,因此我知道可以使用哪个配置。但是对于一个maven,由于没有显式声明,我如何知道我可以使用哪个声明(尽管指定任何配置都是正确的)