Maven 如何理解在gradle中用'configuration'声明依赖关系?
在gradle文件中,我需要添加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
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,由于没有显式声明,我如何知道我可以使用哪个声明(尽管指定任何配置都是正确的)