使用 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/插件/包装/SystemPackagingExtension.groovy#L71。
我们如何解释这两个属性的最新检查中的不同行为?
笔记
是否使用属性赋值时的行为相同(例如: addParentDirs true
与 相同的效果addParentDirs = true
);似乎可能存在与使用的语法相关的问题,请参阅https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/82和https://github.com/nebula-plugins/gradle-ospackage -插件/问题/39
(使用 Gradle v7.4,ospackage 插件 v9.1.1)