如何在Gradle中设置带有变量的JAR版本



如何在Gradle中设置带有变量的JAR版本?

如果我写

ext.nd4j_version = "1.0.0-beta2"
ext.nd4j_backend = "nd4j-native-platform"
dependencies {
compile group: 'org.nd4j', name: '${nd4j_backend}', version: '${nd4j_version}' 

它无法找到工件。

如果我写

nd4j_version = "1.0.0-beta2"
nd4j_backend = "nd4j-native-platform"
dependencies {
compile group: 'org.nd4j', name: '${nd4j_backend}', version: '${nd4j_version}' 

然后它能够找到工件,但会发出警告

Could not set unknown property 'nd4j_version' for root project 

更新

以下内容也不起作用

ext.nd4j_version = "1.0.0-beta2"
ext.nd4j_backend = "nd4j-native-platform"

dependencies {
compile group: 'org.nd4j', name: '${project.ext.nd4j_backend}', version: '${project.ext.nd4j_version}' // works

以及以下

ext.nd4j_version = "1.0.0-beta2"
ext.nd4j_backend = "nd4j-native-platform"

dependencies {
compile group: 'org.nd4j', name: '${rootProject.ext.nd4j_backend}', version: '${rootProject.ext.nd4j_version}' 

以及以下

ext {
nd4j_version = "1.0.0-beta2"
nd4j_backend = "nd4j-native-platform"
}

dependencies {
compile group: 'org.nd4j', name: '${project.nd4j_backend}', version: '${project.ext.nd4j_version}'

请给出一个解释的答案,而不仅仅是随机的工作语法。

删除'{$}'并按原样使用变量。

ext.nd4j_version = "1.0.0-beta2"
ext.nd4j_backend = "nd4j-native-platform"
dependencies {
compile group: 'org.nd4j', name: nd4j_backend, version: nd4j_version 

编辑:您也可以在${}:中使用双引号

dependencies {
compile group: 'org.nd4j', name: "${nd4j_backend}", version: "${nd4j_version}"

最新更新