2015-04-29 42 views
1

在gradle这个文件,我需要补充的com.google.guava:guava:16.0的依赖,我可以这样写:如何理解用gradle中的`configuration`声明依赖关系?

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,它会报告:

失败:建立失败,一个例外。

* 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/...配置的任何信息。

+1

你想达到什么目的?如果你想在编译类路径中添加番石榴,只需使用'compile com.google.guava:guava:16.0'。如果你只想用于测试,只需使用'testCompile com.google.guava:guava:16.0' –

回答

0

Maven不支持多种配置(ivy),并且是pom文件是您的案例中的模块描述符。只使用没有配置的符号应该没问题。另外,我无法重现您报道

+0

是的,对于常春藤模块描述符,我可以清楚地看到'ivy - ???。xml'中声明的配置,所以我知道我可以使用哪一个。但对于一个maven,由于没有明确的声明,我怎么知道我可以使用哪一个(虽然指定任何配置是正确的) – Freewind