Gradle 6.2.2 破坏了我的 bintray 发布(工件名称而不是版本号)
Gradle 6.2.2 broke my bintray publishing (artifact names instead of version numbers)
自从更新到 gradle 6.2.2 后,bintray 发布变得疯狂。 Bintray 显示工件名称而不是版本号,库无法使用。
有没有人经历过或知道为什么会这样?
编辑:切换到 5.6.3 gradle 包装器将按预期上传库(没有 artifact/version 编号命名问题)
较新的 Gradle 版本也发布了更安全的校验和。 Bintray 无法识别这些校验和,因此它假定存在另一个版本的工件。您应该注意到所有语义版本实际上都是完整的,您可以删除非版本。
要禁止发布这些校验和,您可以将以下内容添加到您的 gradle 属性中。
systemProp.org.gradle.internal.publish.checksums.insecure=true
Gradle 团队率先将 .md5
& .sha1
替换为 .sha256
& .sha512
。
我不知道是谁给了他们那个“权利”,适当的安全性只是包签名,所以我看不出有什么理由进行这种重大改变(为什么要推动 Apache & Sonatype & JFrog 修补他们的软件??) .
在src/dependency-management/org/gradle/api/internal/artifacts/repositories/resolver/ExternalResourceResolver.java
中:
public static boolean disableExtraChecksums() {
return Boolean.getBoolean("org.gradle.internal.publish.checksums.insecure");
}
private void publishChecksums(ExternalResourceName destination, File content) {
publishChecksum(destination, content, "sha1", 40);
if (!ExternalResourceResolver.disableExtraChecksums()) {
publishPossiblyUnsupportedChecksum(destination, content, "sha-256", 64);
publishPossiblyUnsupportedChecksum(destination, content, "sha-512", 128);
}
}
所以解决方案是将系统属性 org.gradle.internal.publish.checksums.insecure
设置为true
:
gradle -D org.gradle.internal.publish.checksums.insecure=true ...
systemProp.org.gradle.internal.publish.checksums.insecure = true
在 gradle.properties
System.setProperty("org.gradle.internal.publish.checksums.insecure", "true")
在 settings.gradle
参见:
自从更新到 gradle 6.2.2 后,bintray 发布变得疯狂。 Bintray 显示工件名称而不是版本号,库无法使用。
有没有人经历过或知道为什么会这样?
编辑:切换到 5.6.3 gradle 包装器将按预期上传库(没有 artifact/version 编号命名问题)
较新的 Gradle 版本也发布了更安全的校验和。 Bintray 无法识别这些校验和,因此它假定存在另一个版本的工件。您应该注意到所有语义版本实际上都是完整的,您可以删除非版本。
要禁止发布这些校验和,您可以将以下内容添加到您的 gradle 属性中。
systemProp.org.gradle.internal.publish.checksums.insecure=true
Gradle 团队率先将 .md5
& .sha1
替换为 .sha256
& .sha512
。
我不知道是谁给了他们那个“权利”,适当的安全性只是包签名,所以我看不出有什么理由进行这种重大改变(为什么要推动 Apache & Sonatype & JFrog 修补他们的软件??) .
在src/dependency-management/org/gradle/api/internal/artifacts/repositories/resolver/ExternalResourceResolver.java
中:
public static boolean disableExtraChecksums() {
return Boolean.getBoolean("org.gradle.internal.publish.checksums.insecure");
}
private void publishChecksums(ExternalResourceName destination, File content) {
publishChecksum(destination, content, "sha1", 40);
if (!ExternalResourceResolver.disableExtraChecksums()) {
publishPossiblyUnsupportedChecksum(destination, content, "sha-256", 64);
publishPossiblyUnsupportedChecksum(destination, content, "sha-512", 128);
}
}
所以解决方案是将系统属性 org.gradle.internal.publish.checksums.insecure
设置为true
:
gradle -D org.gradle.internal.publish.checksums.insecure=true ...
systemProp.org.gradle.internal.publish.checksums.insecure = true
在gradle.properties
System.setProperty("org.gradle.internal.publish.checksums.insecure", "true")
在settings.gradle
参见: