【发布时间】:2022-11-09 23:10:31
【问题描述】:
使用 Nebula RPM Plugin 对于某些 ospackage 扩展属性,我在增量构建支持方面存在一些问题。
请参见下面的简单示例:
plugins {
id "nebula.ospackage" version "9.1.1"
}
ospackage {
packageDescription = "my sample package"
user "root"
createDirectoryEntry true
addParentDirs true
}
当更改 createDirectoryEntry 属性值时,Gradle 正确检测到更改并将任务视为 NOT up-to-date ,正如预期的那样:
> Task :buildRpm
Caching disabled for task ':buildRpm' because:
Build cache is disabled
Task ':buildRpm' is not up-to-date because:
Value of input property 'createDirectoryEntry' has changed for task ':buildRpm'
Created rpm java.io.RandomAccessFile@25ee06fa
:buildRpm (Thread[Execution worker for ':',5,main]) completed. Took 0.02 secs.
但更改addParentDirs 属性值时,未检测到更改,并且任务被认为是最新的!
> Task :buildRpm UP-TO-DATE
Caching disabled for task ':buildRpm' because:
Build cache is disabled
Skipping task ':buildRpm' as it is up-to-date.
:buildRpm (Thread[Execution worker for ':',5,main]) completed. Took 0.007 secs.
addParentDirs 和 createDirectoryEntry 都是简单的布尔属性,它们的 getter 使用 @Input 正确注释,请参阅 https://github.com/nebula-plugins/gradle-ospackage-plugin/blob/main/src/main/groovy/com/netflix/gradle/plugins/packaging/SystemPackagingExtension.groovy#L71。
我们如何解释这两个属性的最新检查中的不同行为?
笔记
是否使用属性赋值时的行为相同(例如:addParentDirs true 与 addParentDirs = true 效果相同);似乎可能存在与使用的语法相关的问题,请参阅 https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/82 和 https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/39
(使用 Gradle v7.4,ospackage 插件 v9.1.1)
【问题讨论】:
标签: gradle netflix-nebula-plugins