我正在尝试一些相当简单的事情:没有上传任务第二次执行相同的版本号。我
uploadArchives {
inputs.file file("version.txt")
repositories.mavenDeployer {
// ...
}
}
version.txt包含:
1.0.2
但是,当我在不更改版本的情况下执行任务两次时,任务未显示为UP-TO-DATE。我也尝试将属性声明为输入,效果相同。 我可能错过了一些明显的东西。
答案 0 :(得分:2)
Upload
任务类型未声明任何输出,在这种情况下,Gradle会安全地播放它并假设输出已过期。试试这个:
uploadArchives.outputs.upToDateWhen { true }
现在uploadArchives
任务应该是最新的,除非要上传的版本文件或存档内容已经更改(与之前在同一台计算机上执行任务相比)。归档内容由Upload
任务类型声明为输入。
请注意,这不会阻止用户/构建A上载与user / build B上传的版本相同的版本。为此,您必须在outputs.upToDateWhen {}
中实现本地/远程版本比较
另一种选择是在存储库端强制执行“不要覆盖”规则。