Generating checksums on upload?


(Adrian Abraham) #1

Given the new support for not downloading duplicate artifacts based on SHA1 sums, I expected Gradle to automatically produce .sha1 files for everything it uploaded to a repository - but it doesn’t. Is there an option I’m missing to cause Gradle to produce the .sha1 files?


#2

This is GRADLE-2145 : we’ll try our best to get this fixed for 1.0.


(leafknode) #3

Figured out a workaround for this. Hope this helps somebody:

project.task("checkSums") << {
        List<CheckSum> checksums = []
        project.configurations.getByName("archives").artifacts.each { artifact ->
        project.ant.checksum(file: artifact.file, algorithm: "sha1", todir: "$project.buildDir/libs")
        project.ant.checksum(file: artifact.file, algorithm: "md5", todir: "$project.buildDir/libs")
        checksums.add(new CheckSum(artifact.name, "${artifact.extension}.sha1", artifact.type, new File("$project.buildDir/libs/${artifact.file.name}.sha1")))
        checksums.add(new CheckSum(artifact.name, "${artifact.extension}.md5", artifact.type, new File("$project.buildDir/libs/${artifact.file.name}.md5")))
      }
        checksums.each { checksum ->
        project.artifacts.add("archives", checksum)
      }
    }
class CheckSum implements PublishArtifact {
      String name;
    String extension;
    String type;
    File file;
      CheckSum(String name, String extension, String type, File file) {
      this.name = name
      this.extension = extension
      this.type = type
      this.file = file
    }
      @Override
    String getName() {
      return name
    }
      @Override
    String getExtension() {
      return extension
    }
      @Override
    String getType() {
      return type
    }
      @Override
    String getClassifier() {
      return null
    }
      @Override
    File getFile() {
      return file
    }
      @Override
    Date getDate() {
      return new Date()
    }
      @Override
    TaskDependency getBuildDependencies() {
      return null
    }
  }

(leafknode) #4

Does Gradle provide for creating sha1 files for artifacts handled by uploadArchives?

This reply was created from a merged topic originally titled Auto-Generated SHA1 files?.