有没有一种方法可以使用。gradle额外属性中的分隔符

有没有一种方法可以使用。gradle额外属性中的分隔符,gradle,Gradle,我正在将一个构建从Maven升级到Gradle。现有的构建已经定义了一组属性,将在测试期间使用。属性名称使用点(.)作为分隔符 e、 g: 在我的构建脚本中,我得到异常: A problem occurred evaluating root project 'my-project'. > Cannot get property 'database' on extra properties extension as it does not exist 由于这些属性太多,加上它们用于代码测试

我正在将一个构建从Maven升级到Gradle。现有的构建已经定义了一组属性,将在测试期间使用。属性名称使用点(.)作为分隔符

e、 g:

在我的构建脚本中,我得到异常:

A problem occurred evaluating root project 'my-project'.
> Cannot get property 'database' on extra properties extension as it does not exist
由于这些属性太多,加上它们用于代码测试,我不想更改名称。i、 e我不想将属性“database.host”更改为“databaseHost”


有人能解释这个错误吗&如果有一种方法可以指定这些属性而不更改它们的名称

由于Gradle构建脚本基本上是Groovy脚本,因此Gradle在使用Maven样式的虚线属性名时遇到了麻烦。所以点符号被解释为对象字段访问。您可以尝试将属性放入gradle.properties文件,如下所示:

database.host=localhost
database.port=1521
database.instance=sabrixdb
然后在Gradle构建脚本中访问它,如
project.properties['database.host']
或使用Groovy字符串插值语法来获取人类可读的字符串:

"Database host: ${project.'database.host'}"

谢谢yanys的快速回答,这让我更了解gradle。虽然当我将属性条目添加到gradle.properties文件中时,它们仅在构建脚本中可用&而在测试中不可用。因此,我最终将它们添加到测试资源中的一个属性文件中,达到了这个目的。再次感谢!
database.host=localhost
database.port=1521
database.instance=sabrixdb
"Database host: ${project.'database.host'}"