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