0

使用 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.

两者addParentDirscreateDirectoryEntry都是简单的布尔属性,它们的 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/82https://github.com/nebula-plugins/gradle-ospackage -插件/问题/39

(使用 Gradle v7.4,ospackage 插件 v9.1.1)

4

0 回答 0