mirror of
https://github.com/HighCapable/SweetDependency.git
synced 2025-09-04 01:35:46 +08:00
refactor: standardize Gradle project naming
This commit is contained in:
@@ -49,23 +49,23 @@ import org.gradle.plugin.use.PluginDependency
|
||||
|
||||
/**
|
||||
* 获取指定项目的完整名称
|
||||
* @param isUseColon 是否在子项目前使用冒号 - 默认是
|
||||
* @return [String]
|
||||
*/
|
||||
internal val Project.fullName
|
||||
get(): String {
|
||||
val baseNames = mutableListOf<String>()
|
||||
internal fun Project.fullName(isUseColon: Boolean = true): String {
|
||||
val isRoot = this == rootProject
|
||||
val baseNames = mutableListOf<String>()
|
||||
|
||||
/**
|
||||
* 递归子项目
|
||||
* @param project 当前项目
|
||||
*/
|
||||
fun fetchChild(project: Project) {
|
||||
project.parent?.also { if (it != it.rootProject) fetchChild(it) }
|
||||
baseNames.add(project.name)
|
||||
}
|
||||
fetchChild(project = this)
|
||||
return buildString { baseNames.onEach { append(":$it") }.clear() }.drop(1)
|
||||
}
|
||||
/**
|
||||
* 递归子项目
|
||||
* @param project 当前项目
|
||||
*/
|
||||
fun fetchChild(project: Project) {
|
||||
project.parent?.also { if (it != it.rootProject) fetchChild(it) }
|
||||
baseNames.add(project.name)
|
||||
}; fetchChild(project = this)
|
||||
return buildString { baseNames.onEach { append(":$it") }.clear() }.let { if (isUseColon && isRoot.not()) it else it.drop(1) }
|
||||
}
|
||||
|
||||
/**
|
||||
* 向构建脚本添加自定义依赖
|
||||
|
@@ -75,13 +75,14 @@ internal object DependencyMigrationTemplateTransaction {
|
||||
internal fun createTemplate() {
|
||||
SLog.info("Starting analyze projects dependencies structure", SLog.ANLZE)
|
||||
GradleHelper.allProjects.forEach { subProject ->
|
||||
val projectName = subProject.fullName()
|
||||
subProject.plugins().onEach {
|
||||
if (exclusionPluginPrefixs.any { prefix -> it.id.startsWith(prefix) }) return@onEach
|
||||
if (Dependencies.hasPlugin { key, _ -> key.current == it.id }) return@onEach
|
||||
if (document.plugins == null) document.plugins = mutableMapOf()
|
||||
val declareDocument = DependencyDocument(version = DependencyVersion.AUTOWIRE_VERSION_NAME)
|
||||
document.plugins?.set(it.id, declareDocument)
|
||||
}.apply { if (isNotEmpty()) SLog.info("Found $size plugins in project \"${subProject.fullName}\"", SLog.LINK) }
|
||||
}.apply { if (isNotEmpty()) SLog.info("Found $size plugins in project \"$projectName\"", SLog.LINK) }
|
||||
subProject.libraries().onEach {
|
||||
if (Dependencies.hasLibrary { key, _ -> key.current == it.toString() }) return@onEach
|
||||
if (document.libraries == null) document.libraries = mutableMapOf()
|
||||
@@ -90,7 +91,7 @@ internal object DependencyMigrationTemplateTransaction {
|
||||
val declareDocument = DependencyDocument(version = it.version.existed)
|
||||
entities[it.groupId]?.set(it.artifactId, declareDocument)
|
||||
}
|
||||
}.apply { if (isNotEmpty()) SLog.info("Found $size libraries in project \"${subProject.fullName}\"", SLog.LINK) }
|
||||
}.apply { if (isNotEmpty()) SLog.info("Found $size libraries in project \"$projectName\"", SLog.LINK) }
|
||||
}; saveTemplateFile()
|
||||
}
|
||||
|
||||
|
@@ -152,24 +152,24 @@ internal object RuntimeDebugTransaction {
|
||||
if (vfExclusionList.isNotEmpty()) versionFilterMap["exclusionList"] = mutableMapOf<String, Any>()
|
||||
vfExclusionList.forEach { versionFilterMap["exclusionList"]?.addAsMap(it) }
|
||||
GradleHelper.allProjects.forEach { subProject ->
|
||||
projectPluginsMap[subProject.fullName] = mutableMapOf<String, Any>()
|
||||
projectLibrariesMap[subProject.fullName] = mutableMapOf<String, Any>()
|
||||
subProject.plugins().forEach { projectPluginsMap[subProject.fullName]?.addAsMap(it.id) }
|
||||
projectPluginsMap[subProject.fullName()] = mutableMapOf<String, Any>()
|
||||
projectLibrariesMap[subProject.fullName()] = mutableMapOf<String, Any>()
|
||||
subProject.plugins().forEach { projectPluginsMap[subProject.fullName()]?.addAsMap(it.id) }
|
||||
subProject.libraries().forEach {
|
||||
val prefix = "(${it.configurationName})"
|
||||
when (it.type) {
|
||||
LibraryDependencyType.EXTERNAL, LibraryDependencyType.EXTERNAL_DELEGATE -> {
|
||||
val suffix = it.version.deployed.noBlank()?.let { e -> ":$e" } ?: ""
|
||||
projectLibrariesMap[subProject.fullName]?.addAsMap("$prefix ${it.groupId}:${it.artifactId}$suffix")
|
||||
projectLibrariesMap[subProject.fullName()]?.addAsMap("$prefix ${it.groupId}:${it.artifactId}$suffix")
|
||||
}
|
||||
LibraryDependencyType.PROJECT -> projectLibrariesMap[subProject.fullName]?.addAsMap("$prefix (project) ${it.project?.fullName}")
|
||||
LibraryDependencyType.PROJECT -> projectLibrariesMap[subProject.fullName()]?.addAsMap("$prefix (project) ${it.project?.fullName()}")
|
||||
LibraryDependencyType.FILES -> {
|
||||
val filesMap = mutableMapOf<String, String>()
|
||||
it.files?.noEmpty()?.forEach { e -> filesMap.addAsMap(e.absolutePath) }?.also {
|
||||
projectLibrariesMap[subProject.fullName] = mapOf("$prefix (files)" to filesMap)
|
||||
} ?: projectLibrariesMap[subProject.fullName]?.addAsMap("$prefix (files) not found or empty folder")
|
||||
projectLibrariesMap[subProject.fullName()] = mapOf("$prefix (files)" to filesMap)
|
||||
} ?: projectLibrariesMap[subProject.fullName()]?.addAsMap("$prefix (files) not found or empty folder")
|
||||
}
|
||||
LibraryDependencyType.OTHERS -> projectLibrariesMap[subProject.fullName]?.addAsMap("$prefix unknown type dependency")
|
||||
LibraryDependencyType.OTHERS -> projectLibrariesMap[subProject.fullName()]?.addAsMap("$prefix unknown type dependency")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user