我正在使用avast的docker compose插件。以下是相关的节。如何确定在配置阶段是否将调用强制性DockerWebTag()?检查插件代码以确定何时调用闭包的唯一方法是吗?
很多时候,我只有在任务图中包含任务时才想提供的信息,但是获取这些信息可能很昂贵,不可用或者需要在获取项目参数时对其进行验证。例如,我不希望有人使用“最新”标签显示堆栈的preprod docker镜像实例,因此,如果DockerWebTag()是“最新”标签,则它会引发异常,否则它将返回当前标签。
dockerCompose {
preprod {
useComposeFiles = ['docker-compose.yml']
environment.putAll([
WEB_DOCKER_IMAGE_VERSION : mandatoryDockerWebTag()
])
tcpPortsToIgnoreWhenWaiting = [33333]
}
}
最佳答案
How can I tell if mandatoryDockerWebTag() will be called during the configuration phase?
我不相信有一种方法可以明确地告诉如何或何时在Gradle中调用任务或配置,而不会:
For instance I don't want someone bringing up the preprod docker image instance of our stack
不幸的是,您无法控制插件作者对Gradle配置执行的操作。他们可以自由/完全访问您的项目,并且据我所知可以随意配置/更改。
好的/有效的插件作者(IMO)使用configuration avoidance。它不仅适用于任务,而且还适用于配置。
关于gradle - 我如何知道gradle插件属性的评估何时会推迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249350/