Gradle:如何让上传任务进行最新检查?

时间:2013-03-27 09:54:28

标签: gradle

我正在尝试一些相当简单的事情:没有上传任务第二次执行相同的版本号。我

uploadArchives {
    inputs.file file("version.txt")
    repositories.mavenDeployer {
        // ...
    }
}

version.txt包含:

1.0.2

但是,当我在不更改版本的情况下执行任务两次时,任务未显示为UP-TO-DATE。我也尝试将属性声明为输入,效果相同。 我可能错过了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

Upload任务类型未声明任何输出,在这种情况下,Gradle会安全地播放它并假设输出已过期。试试这个:

uploadArchives.outputs.upToDateWhen { true }

现在uploadArchives任务应该是最新的,除非要上传的版本文件或存档内容已经更改(与之前在同一台计算机上执行任务相比)。归档内容由Upload任务类型声明为输入。

请注意,这不会阻止用户/构建A上载与user / build B上传的版本相同的版本。为此,您必须在outputs.upToDateWhen {}中实现本地/远程版本比较

另一种选择是在存储库端强制执行“不要覆盖”规则。