gpt4 book ai didi

gradle - 是否可以从提示错误中覆盖gradle,因为(“.”和 “-”在变量名中)?例如;任务中的name.dir(未找到.dir)

转载 作者:行者123 更新时间:2023-12-03 06:06:20 27 4
gpt4 key购买 nike

错误信息:

* What went wrong:
A problem occurred evaluating root project 'telescope-master'.
> Cannot get property 'dir' on null object

gradle.properties文件
classes.dir  = WebContent/WEB-INF/classes  
webContent.dir = WebContent
template.dir = hdm/template
javascript.dir = hdm/function
javascript4.0.2.dir = hdm/function/4.0.2
datamodel.dir = hdm/datamodel
certificate.dir = certificate

build.gradle文件
Properties extFile = new Properties()
extFile.load(new FileInputStream('gradle.properties'))

task FirmwareMatch(type: Zip) {
from ("${extFile.javascript.dir}")
include 'factoryResetOnFirmwareMatch.*'
archiveName 'factoryResetOnFirmwareMatch.zip'
destinationDir file('dist/hdm/function')
}

所以基本上,如果我删除“。”从.dir上的两个文件都可以。但是有什么办法可以避免骑行吗?

另外,在gradle中使用$ {TODAY}时如何显示实际日期。

最佳答案

因此,您的问题表达是:

extFile.javascript.dir

如果我们将其分解为Groovy的解释方式:
extFile.getProperty('javascript').getProperty('dir')

您希望Groovy将其解释为:
extFile.getProperty('javascript.dir')

除了直接调用 getProperty之外,还有一些Groovy选项:
extFile.'javascript.dir'
extFile['javascript.dir']

此外,假设 gradle.properties文件位于项目根目录(通常是 build.gradle的同级文件)或 GRADLE_HOME目录(即 ~/.gradle/gradle.properties)中,它将由Gradle自动加载,并且所有属性都可用作项目属性。

因此,您可以删除所有属性解析代码,然后执行以下操作:
project.getProperty('javascript.dir')
// or
project.'javascript.dir'
// or
project['javascript.dir']

如果要防止未设置的那些属性(位于Gradle 2.13或更高版本上),可以使用 findProperty代替 getProperty,这将返回 null而不是引发异常。

关于gradle - 是否可以从提示错误中覆盖gradle,因为(“.”和 “-”在变量名中)?例如;任务中的name.dir(未找到.dir),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com