diff --git a/settings.gradle.kts b/settings.gradle.kts index 54d5f1a9b2..342c7a9101 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,7 +28,7 @@ include(":subprojects:gradle:graphite-config") include(":subprojects:gradle:impact") include(":subprojects:gradle:impact-shared") include(":subprojects:gradle:module-dependencies-graph") -include(":subprojects:gradle:module-dependencies-shared") +include(":subprojects:gradle:module-dependencies") include(":subprojects:gradle:module-types") include(":subprojects:gradle:pre-build") include(":subprojects:gradle:process") diff --git a/subprojects/gradle/impact-shared/build.gradle.kts b/subprojects/gradle/impact-shared/build.gradle.kts index 6953401a52..fc7a5274f6 100644 --- a/subprojects/gradle/impact-shared/build.gradle.kts +++ b/subprojects/gradle/impact-shared/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } dependencies { - api(projects.subprojects.gradle.moduleDependenciesShared) + api(projects.subprojects.gradle.moduleDependencies) implementation(gradleApi()) diff --git a/subprojects/gradle/module-dependencies-graph/build.gradle.kts b/subprojects/gradle/module-dependencies-graph/build.gradle.kts index 617c7d584d..46a462e924 100644 --- a/subprojects/gradle/module-dependencies-graph/build.gradle.kts +++ b/subprojects/gradle/module-dependencies-graph/build.gradle.kts @@ -7,7 +7,7 @@ plugins { dependencies { compileOnly(gradleApi()) - implementation(projects.subprojects.gradle.moduleDependenciesShared) + implementation(projects.subprojects.gradle.moduleDependencies) implementation(projects.subprojects.logger.gradleLogger) implementation(projects.subprojects.common.math) implementation(projects.subprojects.gradle.gradleExtensions) diff --git a/subprojects/gradle/module-dependencies-shared/build.gradle.kts b/subprojects/gradle/module-dependencies/build.gradle.kts similarity index 100% rename from subprojects/gradle/module-dependencies-shared/build.gradle.kts rename to subprojects/gradle/module-dependencies/build.gradle.kts diff --git a/subprojects/gradle/module-dependencies-shared/locking/gradle.lockfile b/subprojects/gradle/module-dependencies/locking/gradle.lockfile similarity index 100% rename from subprojects/gradle/module-dependencies-shared/locking/gradle.lockfile rename to subprojects/gradle/module-dependencies/locking/gradle.lockfile diff --git a/subprojects/gradle/module-dependencies-shared/src/main/kotlin/com/avito/module/configurations/ConfigurationType.kt b/subprojects/gradle/module-dependencies/src/main/kotlin/com/avito/module/configurations/ConfigurationType.kt similarity index 100% rename from subprojects/gradle/module-dependencies-shared/src/main/kotlin/com/avito/module/configurations/ConfigurationType.kt rename to subprojects/gradle/module-dependencies/src/main/kotlin/com/avito/module/configurations/ConfigurationType.kt diff --git a/subprojects/gradle/module-dependencies-shared/src/main/kotlin/com/avito/module/dependencies/ModuleConfigurationDependencies.kt b/subprojects/gradle/module-dependencies/src/main/kotlin/com/avito/module/dependencies/ModuleConfigurationDependencies.kt similarity index 100% rename from subprojects/gradle/module-dependencies-shared/src/main/kotlin/com/avito/module/dependencies/ModuleConfigurationDependencies.kt rename to subprojects/gradle/module-dependencies/src/main/kotlin/com/avito/module/dependencies/ModuleConfigurationDependencies.kt diff --git a/subprojects/gradle/module-types/build.gradle.kts b/subprojects/gradle/module-types/build.gradle.kts index 3e5214a255..0e7402d60a 100644 --- a/subprojects/gradle/module-types/build.gradle.kts +++ b/subprojects/gradle/module-types/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } dependencies { - api(projects.subprojects.gradle.moduleDependenciesShared) + api(projects.subprojects.gradle.moduleDependencies) implementation(projects.subprojects.logger.gradleLogger) implementation(projects.subprojects.gradle.gradleExtensions) diff --git a/subprojects/gradle/module-types/src/gradleTest/kotlin/com/avito/android/module_type/ModuleTypesTest.kt b/subprojects/gradle/module-types/src/gradleTest/kotlin/com/avito/android/module_type/ModuleTypesTest.kt index fbdb8d1d88..75985d7601 100644 --- a/subprojects/gradle/module-types/src/gradleTest/kotlin/com/avito/android/module_type/ModuleTypesTest.kt +++ b/subprojects/gradle/module-types/src/gradleTest/kotlin/com/avito/android/module_type/ModuleTypesTest.kt @@ -44,6 +44,20 @@ internal class ModuleTypesTest : BaseModuleTypesTest() { ) } + @Test + fun `forbidden dependency in implementation - success - warning severity`() { + givenProject( + severity = Severity.warning, + moduleType = LibraryModule, + dependency = Dependency(FeatureModule), + constraint = Constraint(module = LibraryModule, dependency = FeatureModule) + ) + + val result = runCheck(projectDir, expectFailure = false) + + result.assertThat().outputContains(briefErrorMessage) + } + @Test fun `forbidden test dependency in implementation - failure`() { givenProject( diff --git a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/DependencyRestriction.kt b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/DependencyRestriction.kt index 88dfeaa365..eb43628796 100644 --- a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/DependencyRestriction.kt +++ b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/DependencyRestriction.kt @@ -7,15 +7,16 @@ public class DependencyRestriction( public val exclusions: Set = emptySet(), @Deprecated("Use matcher's description instead. This property is not used and will be deleted.") public val description: String = "" -) +) { -internal fun DependencyRestriction.isViolated( - module: ModuleWithType, - dependency: ModuleWithType, - configuration: ConfigurationType -): Boolean { - val isExcluded = exclusions.any { - it.matches(module, dependency, configuration) + internal fun isViolated( + module: ModuleWithType, + dependency: ModuleWithType, + configuration: ConfigurationType + ): Boolean { + val isExcluded = exclusions.any { + it.matches(module, dependency, configuration) + } + return !isExcluded && matcher.matches(module, dependency, configuration) } - return !isExcluded && matcher.matches(module, dependency, configuration) } diff --git a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/ModuleTypesPlugin.kt b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/ModuleTypesPlugin.kt index eb77918d81..1d77c507f6 100644 --- a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/ModuleTypesPlugin.kt +++ b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/ModuleTypesPlugin.kt @@ -4,7 +4,6 @@ import com.avito.android.module_type.internal.CheckModuleDependenciesTask import com.avito.android.module_type.internal.ExtractModuleDescriptionTask import com.avito.kotlin.dsl.isRoot import com.avito.kotlin.dsl.typedNamedOrNull -import com.avito.logger.GradleLoggerPlugin import com.avito.module.configurations.ConfigurationType import com.avito.module.dependencies.directDependenciesOnProjects import org.gradle.api.Plugin @@ -32,7 +31,6 @@ public class ModuleTypesPlugin : Plugin { task.group = "verification" task.severity.set(extension.severity) task.restrictions.set(extension.restrictions) - task.loggerFactory.set(GradleLoggerPlugin.getLoggerFactory(task)) } } diff --git a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/CheckModuleDependenciesTask.kt b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/CheckModuleDependenciesTask.kt index 94cfbe62c9..3252924c88 100644 --- a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/CheckModuleDependenciesTask.kt +++ b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/CheckModuleDependenciesTask.kt @@ -6,7 +6,6 @@ import com.avito.android.module_type.DependencyRestriction import com.avito.android.module_type.ModuleTypeRootExtension import com.avito.android.module_type.ModuleWithType import com.avito.android.module_type.Severity -import com.avito.logger.LoggerFactory import org.gradle.api.DefaultTask import org.gradle.api.file.Directory import org.gradle.api.file.ProjectLayout @@ -36,16 +35,12 @@ internal abstract class CheckModuleDependenciesTask @Inject constructor( @get:Input abstract val restrictions: ListProperty - @get:Internal - abstract val loggerFactory: Property @TaskAction fun checkDependencies() { val violations = ModulesRestrictionsFinder(readModules(), restrictions.get()).violations() if (violations.isNotEmpty()) { - val logger = loggerFactory.get().create("") - val error = buildProblem(violations).asRuntimeException() @Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA") diff --git a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/ModulesRestrictionsFinder.kt b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/ModulesRestrictionsFinder.kt index e775f4f74d..f6f36b0790 100644 --- a/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/ModulesRestrictionsFinder.kt +++ b/subprojects/gradle/module-types/src/main/kotlin/com/avito/android/module_type/internal/ModulesRestrictionsFinder.kt @@ -4,7 +4,6 @@ import com.avito.android.Problem import com.avito.android.asRuntimeException import com.avito.android.module_type.DependencyRestriction import com.avito.android.module_type.ModuleWithType -import com.avito.android.module_type.isViolated import com.avito.android.module_type.pluginId import com.avito.module.configurations.ConfigurationType