如何在Gradle上设置依赖项的版本?
我想在我的Gradle(app/build.Gradle)配置文件的一个地方设置依赖项的版本,以便在更新时更容易更改 问题是:如何在Gradle上设置依赖项的版本?,gradle,build.gradle,version,Gradle,Build.gradle,Version,我想在我的Gradle(app/build.Gradle)配置文件的一个地方设置依赖项的版本,以便在更新时更容易更改 问题是: dependencies { implementation 'com.google.android.gms:play-services-maps:12.0.0' implementation 'com.google.android.gms:play-services-auth:12.0.0' implementation 'com.google.firebase:fir
dependencies {
implementation 'com.google.android.gms:play-services-maps:12.0.0'
implementation 'com.google.android.gms:play-services-auth:12.0.0'
implementation 'com.google.firebase:firebase-core:12.0.0'
implementation 'com.google.firebase:firebase-auth:12.0.0'
implementation 'com.google.firebase:firebase-database:12.0.0'
implementation 'com.google.firebase:firebase-storage:12.0.0'
implementation 'com.google.firebase:firebase-messaging:12.0.0'
implementation 'com.google.android.gms:play-services-ads:12.0.0'
implementation 'com.github.bumptech.glide:glide:4.5.0'
}
你能看到吗,我多次重复同一个版本,这使得将所有版本更改为下一个版本变得缓慢和不负责任
就像在Maven,我可以这样做:
<properties>
<org.springframework.version>5.0.8.RELEASE</org.springframework.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
</dependencies>
5.0.8.1发布
设置版本后,我只添加如下内容:
<properties>
<org.springframework.version>5.0.8.RELEASE</org.springframework.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
</dependencies>
org.springframework
spring上下文
${org.springframework.version}
Maven配置的最后一部分设置了这一部分的版本:
${org.springframework.version}
在我的gradle配置中,我怎么能做同样的事情呢?假设他们都会有相同的版本是绝对错误的
def glideVersion = "4.5.0"
dependencies {
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation "com.google.android.gms:play-services-auth:16.0.1"
implementation "com.google.android.gms:play-services-maps:16.0.0"
implementation "com.google.android.gms:play-services-ads:16.0.0"
implementation "com.google.firebase:firebase-core:16.0.4"
implementation "com.google.firebase:firebase-auth:16.0.4"
implementation "com.google.firebase:firebase-database:16.0.3"
implementation "com.google.firebase:firebase-storage:16.0.3"
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation "com.github.bumptech.glide:glide:${glideVersion}"
}
还可以使用版本号设置project.ext
,或者从外部文件加载它们
ext {
glideVersion = "4.5.0"
...
}
然后将其与${rootProject.ext.glideVersion}
或${project.ext.glideVersion}
一起使用
总的来说,改变并不容易。。。这只是另一种组织方式。@Dims正如前面的评论中所述,至少在计算表达式时,您需要双引号。“…好的,谢谢您。另外,请您解释一下,为什么在相同的上下文中,${nd4j\U版本和
”${nd4j\U版本}“
引用了不同的变量?@Dims只能猜测,而看不到脚本,但是def
定义了一个局部变量-可能是在另一个范围内用另一个值定义的。在相同的范围内,它应该始终是相同的。我引用了您的代码。你写了ext{glideVersion
,但是你写的字符串${project.ext.glideVersion}
不是${ext.glideVersion}
。你得到了exta嵌套,没有指定任何地方。为什么?为什么你不写ext{def glideVersion=
?