@@ -73,4 +73,58 @@ publishing {
7373 }
7474 }
7575 }
76- }
76+ }
77+
78+
79+ // Force checksum generation
80+ // Generate checksums after publishing
81+ tasks. register(' generateChecksums' ) {
82+ dependsOn ' publishMavenPublicationToMavenLocal'
83+
84+ doLast {
85+ // Get the local maven repository path
86+ def userHome = System . getProperty(' user.home' )
87+ def localRepoPath = " ${ userHome} /.m2/repository"
88+ def groupPath = project. group. toString(). replace(' .' , ' /' )
89+ def artifactDir = new File (" ${ localRepoPath} /${ groupPath} /${ project.name} /${ project.version} " )
90+
91+ println " Generating checksums in: ${ artifactDir.absolutePath} "
92+
93+ if (artifactDir. exists()) {
94+ artifactDir. listFiles(). findAll { file ->
95+ file. isFile() &&
96+ (file. name. endsWith(' .jar' ) || file. name. endsWith(' .pom' )) &&
97+ ! file. name. contains(' maven-metadata' )
98+ }. each { file ->
99+ generateChecksumsFor(file)
100+ }
101+ }
102+ }
103+ }
104+
105+ def generateChecksumsFor (File file ) {
106+ // Generate MD5
107+ def md5File = new File (file. parentFile, " ${ file.name} .md5" )
108+ if (! md5File. exists()) {
109+ def md5 = java.security.MessageDigest . getInstance(' MD5' )
110+ file. eachByte(8192 ) { buffer , length ->
111+ md5. update(buffer, 0 , length)
112+ }
113+ md5File. text = md5. digest(). collect { String . format(' %02x' , it & 0xff ) }. join()
114+ println " Generated MD5 for ${ file.name} "
115+ }
116+
117+ // Generate SHA1
118+ def sha1File = new File (file. parentFile, " ${ file.name} .sha1" )
119+ if (! sha1File. exists()) {
120+ def sha1 = java.security.MessageDigest . getInstance(' SHA-1' )
121+ file. eachByte(8192 ) { buffer , length ->
122+ sha1. update(buffer, 0 , length)
123+ }
124+ sha1File. text = sha1. digest(). collect { String . format(' %02x' , it & 0xff ) }. join()
125+ println " Generated SHA1 for ${ file.name} "
126+ }
127+ }
128+
129+ // Chain the tasks
130+ publishToMavenLocal. finalizedBy generateChecksums
0 commit comments