如何强制Gradle为两个依赖项设置相同的版本?

我使用以下两个依赖项:

compile 'com.google.guava:guava:14.0.1'

compile 'com.google.guava:guava-gwt:14.0.1'

两者必须为同一版本才能正常工作。由于我的其他依赖项使用更高的版本,因此Gradle为每个依赖项使用不同的版本。

我通过运行发现了这一点gradle dependencies

compile - Compile classpath for source set 'main'.

+--- com.google.guava:guava:14.0.1 -> 17.0

+--- com.google.guava:guava-gwt:14.0.1

| +--- com.google.code.findbugs:jsr305:1.3.9

| \--- com.google.guava:guava:14.0.1 -> 17.0

如何强制Gradle为这两个依赖项设置相同的版本?

回答:

您的依赖项之一是强制更新番石榴版本。使用gradle dependencies以定位库驱逐你的版本。

您遇到的问题是,如果您强迫它使用14.0.1,则另一个库可能无法正常工作。您是否可以仅使用17.0版本作为依赖项?

我不是在build.gradle中维护单个版本号,而是使用dependencies.gradle文件,该文件将具有版本号的映射并将其拉入build.gradle。这样,我只需要维护单个番石榴版本。因此,您的示例将是:

Dependencies.gradle

ext {

ver = [

guava: '14.0.1'

]

}

然后在build.gradle文件中,您可以拥有:

apply from: "dependencies.gradle"

dependencies {

compile group: 'com.google.guava', module: 'guava', version: ver.guava

compile group: 'com.google.guava', module: 'guava-gwt', version: ver.guava

}

然后,当我想移至17.0时,我只需要更改dependencies.gradle。

我也是通过以下方式将可传递依赖项设置为false的绝对支持者

configurations.compile { transitive = false }

这样,即使退出库不是完全向后兼容的,尽管在运行时可能会出现问题,但是在编译时不会退出某些依赖项。面对现实吧,如果您正在编写代码,则应该了解所使用的库,并且应该清楚了解自己的依赖项。它可以保护您免受依赖性升级和混乱困扰之一。

以上是 如何强制Gradle为两个依赖项设置相同的版本? 的全部内容, 来源链接: utcz.com/qa/424222.html

回到顶部