diff --git a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/gradle/factory/GradleProjectFactory.kt b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/gradle/factory/GradleProjectFactory.kt index 2f1a7da..5c842c2 100644 --- a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/gradle/factory/GradleProjectFactory.kt +++ b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/gradle/factory/GradleProjectFactory.kt @@ -49,23 +49,23 @@ import org.gradle.plugin.use.PluginDependency /** * 获取指定项目的完整名称 + * @param isUseColon 是否在子项目前使用冒号 - 默认是 * @return [String] */ -internal val Project.fullName - get(): String { - val baseNames = mutableListOf() +internal fun Project.fullName(isUseColon: Boolean = true): String { + val isRoot = this == rootProject + val baseNames = mutableListOf() - /** - * 递归子项目 - * @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) } +} /** * 向构建脚本添加自定义依赖 diff --git a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/DependencyMigrationTemplateTransaction.kt b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/DependencyMigrationTemplateTransaction.kt index 4b142b7..7853a2b 100644 --- a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/DependencyMigrationTemplateTransaction.kt +++ b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/DependencyMigrationTemplateTransaction.kt @@ -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() } diff --git a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/RuntimeDebugTransaction.kt b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/RuntimeDebugTransaction.kt index b110336..53b1db0 100644 --- a/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/RuntimeDebugTransaction.kt +++ b/sweetdependency-gradle-plugin/src/main/java/com/highcapable/sweetdependency/manager/transaction/RuntimeDebugTransaction.kt @@ -152,24 +152,24 @@ internal object RuntimeDebugTransaction { if (vfExclusionList.isNotEmpty()) versionFilterMap["exclusionList"] = mutableMapOf() vfExclusionList.forEach { versionFilterMap["exclusionList"]?.addAsMap(it) } GradleHelper.allProjects.forEach { subProject -> - projectPluginsMap[subProject.fullName] = mutableMapOf() - projectLibrariesMap[subProject.fullName] = mutableMapOf() - subProject.plugins().forEach { projectPluginsMap[subProject.fullName]?.addAsMap(it.id) } + projectPluginsMap[subProject.fullName()] = mutableMapOf() + projectLibrariesMap[subProject.fullName()] = mutableMapOf() + 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() 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") } } }