diff --git a/settings.gradle.kts b/settings.gradle.kts index 0f127845a2..4d48a70a71 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 8b53292e7d..fcc91a4825 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 33d96e5fff..1c31aec0fb 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.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 d2c87e7619..408bf82d18 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.gradle.gradleExtensions) implementation(projects.subprojects.common.problem) 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/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