【发布时间】:2021-12-29 22:17:04
【问题描述】:
在我的用户主目录“C:/Users/USERNAME”中,我创建了一个包含以下内容的 gradle.properties 文件:
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile
ossrhUsername=your-jira-id
ossrhPassword=your-jira-password
我应该能够在 gradle 构建文件中访问它。根据this Gradle documentation,我应该能够通过提及它们的标识符来使用它们。所以我用以下内容制作了一个 build.gradle 文件。
println "ossrhUsername: "+ossrhUsername
println "ossrhPassword: "+ossrhPassword
当我运行它时,它失败了,抱怨它找不到属性ossrhUsername。我不知道该怎么做,因为官方文档说这应该可以工作,并且它给出了一个对我不起作用的例子,我不知道出了什么问题。这是输出
d:\build\gradleplay>gradle build
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\build\gradleplay\build.gradle' line: 1
* What went wrong:
A problem occurred evaluating root project 'gradleplay'.
> Could not get unknown property 'ossrhUsername' for root project 'gradleplay' of type org.gradle.api.Project.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
另一个消息来源说 findProperty 应该像这样工作:
println "ossrhUsername: "+findProperty("ossrhUsername")
println "ossrhPassword: "+findProperty("ossrhPassword")
这会运行,但 findProperty 返回的值为 null。
另一位消息人士表示,这些值可以作为项目对象上的地图找到,并坚持认为这应该有效:
println "ossrhUsername: "+project.properties["ossrhUsername"]
println "ossrhPassword: "+project.properties["ossrhPassword"]
这也可以运行,但是这两个值都为 null。我怀疑由于某种原因,gradle 系统没有在 c:/Users/USERNAME 文件夹中查找并且没有读取文件。您能想到什么方法来弄清楚为什么会发生这种情况?
【问题讨论】:
标签: gradle groovy properties configuration