Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 79 additions & 1 deletion method-analyzer-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,82 @@ publishing {
}
}
}
}
}


// Force checksum generation
// Generate checksums after publishing
// Generate checksums and cleanup maven metadata after publishing
tasks.register('generateChecksumsAndCleanup') {
dependsOn 'publishMavenPublicationToMavenLocal'

doLast {
def userHome = System.getProperty('user.home')
def localRepoPath = "${userHome}/.m2/repository"
def groupPath = project.group.toString().replace('.', '/')
def artifactDir = new File("${localRepoPath}/${groupPath}/${project.name}/${project.version}")
def artifactParentDir = new File("${localRepoPath}/${groupPath}/${project.name}")

println "Processing ${project.name} in: ${artifactDir.absolutePath}"

if (artifactDir.exists()) {
// Generate checksums for all relevant files
artifactDir.listFiles().findAll { file ->
file.isFile() &&
(file.name.endsWith('.jar') || file.name.endsWith('.pom') || file.name.endsWith('.module')) &&
!file.name.contains('maven-metadata') &&
!file.name.endsWith('.asc') && // Skip signature files
!file.name.endsWith('.md5') && // Skip existing checksums
!file.name.endsWith('.sha1') // Skip existing checksums
}.each { file ->
generateChecksumsFor(file)
}

// Clean up maven-metadata-local.xml files
cleanupMavenMetadata(artifactDir, artifactParentDir)
}
}
}

def generateChecksumsFor(File file) {
// Generate MD5
def md5File = new File(file.parentFile, "${file.name}.md5")
if (!md5File.exists()) {
def md5 = java.security.MessageDigest.getInstance('MD5')
file.eachByte(8192) { buffer, length ->
md5.update(buffer, 0, length)
}
md5File.text = md5.digest().collect { String.format('%02x', it & 0xff) }.join()
println "Generated MD5 for ${file.name}"
}

// Generate SHA1
def sha1File = new File(file.parentFile, "${file.name}.sha1")
if (!sha1File.exists()) {
def sha1 = java.security.MessageDigest.getInstance('SHA-1')
file.eachByte(8192) { buffer, length ->
sha1.update(buffer, 0, length)
}
sha1File.text = sha1.digest().collect { String.format('%02x', it & 0xff) }.join()
println "Generated SHA1 for ${file.name}"
}
}

def cleanupMavenMetadata(File versionDir, File artifactDir) {
// Delete maven-metadata-local.xml from version directory (e.g., 1.0.7-SNAPSHOT/)
def versionMetadataFile = new File(versionDir, 'maven-metadata-local.xml')
if (versionMetadataFile.exists()) {
boolean deleted = versionMetadataFile.delete()
println "Deleted maven-metadata-local.xml from version directory: ${deleted ? 'SUCCESS' : 'FAILED'}"
}

// Delete maven-metadata-local.xml from artifact directory (e.g., method-analyzer-core/)
def artifactMetadataFile = new File(artifactDir, 'maven-metadata-local.xml')
if (artifactMetadataFile.exists()) {
boolean deleted = artifactMetadataFile.delete()
println "Deleted maven-metadata-local.xml from artifact directory: ${deleted ? 'SUCCESS' : 'FAILED'}"
}
}

// Chain the tasks
publishToMavenLocal.finalizedBy generateChecksumsAndCleanup