使用 gradle 中的 maven-publish 插件生成 SHA512 校验和文件

dpr*_*dpr 7 java checksum sha512 gradle maven

maven-publish默认情况下,该插件为所有工件生成 MD5 和 SHA1 校验和文件。但是有什么方法可以让插件生成安全的校验和文件(首选 SHA512)?

这很容易重现。我刚刚初始化了一个新java-library项目并添加了maven-publish插件及其配置

构建.gradle:

apply plugin: 'java'
apply plugin: 'maven-publish'

repositories {
  jcenter()
}

dependencies {
}

publishing {
  repositories {
    maven {
      url rootProject.buildDir.path + '/repo'
    }
  }
  publications {
    mavenJava(MavenPublication) {
      groupId = 'org.gradle.sample'
      artifactId = 'project1-sample'
      version = '1.1'

      from components.java
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经查阅了 gradle 文档和 javadoc,但根本找不到关于校验和文件的任何提示。我知道我可以使用这样的 ANT 校验和任务很容易地为工件生成校验和

doLast {
  ant.checksum(file: archivePath, algorithm: "SHA-512")
}
Run Code Online (Sandbox Code Playgroud)

但是我会以某种方式需要将它们“手动”放在正确的文件夹中,而不是实际的工件,这是我想避免的。


编辑
如果无法指定校验和算法,是否可以以某种方式挂钩publish任务并将自定义校验和文件添加到工件目标文件夹中?我不想将校验和文件本身添加为工件,因为校验和会有 MD5 和 SHA1 校验和,这是没有意义的。

小智 6

2019 年 11 月发布的 Gradle 6.0 在其 maven-publish 插件中默认使用 SHA-256 和 SHA-512 作为哈希算法。看

请注意,Gradle 6.0.1 添加了一种方法来禁止使用这些较新的算法,因为某些工件服务器不接受它们: