@@ -9,6 +9,7 @@ import org.gradle.api.tasks.Input
99import org.gradle.api.tasks.InputFiles
1010import org.gradle.api.tasks.OutputFile
1111import org.gradle.api.tasks.TaskAction
12+ import org.gradle.util.internal.VersionNumber
1213import java.util.Properties
1314import javax.inject.Inject
1415
@@ -34,12 +35,19 @@ abstract class UniqueModulesPropertiesUpdate : DefaultTask() {
3435
3536 val modulesToRepoLocation = Properties ()
3637 modulesToRepoLocation.load(modulesProperties.singleFile.inputStream())
37- val modulesToCoordinates = modulesToRepoLocation.toSortedMap { e1, e2 -> e1.toString().compareTo(e2.toString()) }.map { entry ->
38+ val modules = modulesToRepoLocation.toSortedMap { e1, e2 -> e1.toString().compareTo(e2.toString()) }.map { entry ->
3839 val split = entry.value.toString().split(" /" )
3940 val group = split.subList(4 , split.size - 3 ).joinToString(" ." )
4041 val name = split[split.size - 3 ]
41- " ${entry.key} =$group :$name \n "
42- }.joinToString(" " )
43- uniqueModulesProperties.get().asFile.writeText(modulesToCoordinates.trim())
42+ val version = split[split.size - 2 ]
43+ Module (entry.key.toString(), " $group :$name " , version)
44+ }.groupBy { it.ga }.values.map { moduleList ->
45+ moduleList.maxBy { VersionNumber .parse(it.version) }
46+ }.sortedBy { it.name }
47+
48+ val modulesToCoordinates = modules.map { " ${it.name} =${it.ga} \n " }
49+ uniqueModulesProperties.get().asFile.writeText(modulesToCoordinates.joinToString(" " ).trim())
4450 }
51+
52+ data class Module (val name : String , val ga : String , val version : String )
4553}
0 commit comments