diff --git a/README.md b/README.md index 1b564fb..6bee2d6 100644 --- a/README.md +++ b/README.md @@ -85,11 +85,17 @@ Reports are stored in "$pwd/build/reports/diktat-report.html". Набор правил для поддержки оформления архитектуры. -Список доступных правил: - - `ru.touchin.codestyle.archunit.ClassNamingArchRules` - - `ru.touchin.codestyle.archunit.ClassPackagingArchRules` +#### Список доступных правил + - `ru.touchin.codestyle.archunit.rules.ClassNamingArchRules` + - `ru.touchin.codestyle.archunit.rules.ClassPackagingArchRules` -Как использовать совместно с плагином [ArchUnit Gradle Plugin](https://github.com/societe-generale/arch-unit-gradle-plugin): + +#### Gradle plugin +Настройка и применение совместно с [ArchUnit Gradle Plugin](https://github.com/societe-generale/arch-unit-gradle-plugin). + +Действие `checkRules` для проверки соответствие правилам запускается при операциях сборки, по умолчанию. +Вручную можно вызвать командой ``gradle :checkRules`` для нужного модуля. +Добавить его можно следующим образом на примере установки в рутовый gradle.build проекта: Groovy DSL: ```groovy @@ -109,24 +115,24 @@ subprojects { apply plugin: "com.societegenerale.commons.arch-unit-gradle-plugin" archUnit { - mainScopePath = "/classes/kotlin/main" - testScopePath = "/classes/kotlin/test" + mainScopePath = "/classes/kotlin/main" // or "/classes/java/main" + testScopePath = "/classes/kotlin/test" // or /classes/java/test" var applyType = applyOn("ru.touchin", "main") configurableRules = [ configurableRule( - "ru.touchin.codestyle.archunit.ClassNamingArchRules", + "ru.touchin.codestyle.archunit.rules.ClassNamingArchRules", applyType, ), configurableRule( - "ru.touchin.codestyle.archunit.ClassPackagingArchRules", + "ru.touchin.codestyle.archunit.rules.ClassPackagingArchRules", applyType, ), ] } dependencies { - archUnitExtraLib "ru.touchin:codestyle-archunit" + archUnitExtraLib "ru.touchin:codestyle-archunit" // or archUnitExtraLib project(":codestyle-archunit") } } ``` @@ -147,12 +153,12 @@ subprojects { apply(plugin = "com.societegenerale.commons.arch-unit-gradle-plugin") archUnit { - mainScopePath = "/classes/kotlin/main" - testScopePath = "/classes/kotlin/test" + mainScopePath = "/classes/kotlin/main" // or "/classes/java/main" + testScopePath = "/classes/kotlin/test" // or /classes/java/test" configurableRules = listOf( - "ru.touchin.codestyle.archunit.ClassNamingArchRules", - "ru.touchin.codestyle.archunit.ClassPackagingArchRules" + "ru.touchin.codestyle.archunit.rules.ClassNamingArchRules", + "ru.touchin.codestyle.archunit.rules.ClassPackagingArchRules" ).map { package -> configurableRule( package, @@ -162,10 +168,14 @@ subprojects { } dependencies { - archUnitExtraLib(project(":codestyle-archunit")) + archUnitExtraLib("ru.touchin:codestyle-archunit") // or archUnitExtraLib(project(":codestyle-archunit")) } } -// clear action launch for root project +``` + +Отключить проверки на таске помимо конфигурирования `configurableRule` можно также таким образом: +```kotlin +// clear action launch for root project to avoid exception tasks.checkRules.configure { actions.clear() } diff --git a/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassNamingArchRules.kt b/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassNamingArchRules.kt similarity index 98% rename from codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassNamingArchRules.kt rename to codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassNamingArchRules.kt index 8baa8a3..bf4e256 100644 --- a/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassNamingArchRules.kt +++ b/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassNamingArchRules.kt @@ -1,4 +1,4 @@ -package ru.touchin.codestyle.archunit +package ru.touchin.codestyle.archunit.rules import com.tngtech.archunit.lang.ArchRule import com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes diff --git a/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassPackagingArchRules.kt b/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassPackagingArchRules.kt similarity index 97% rename from codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassPackagingArchRules.kt rename to codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassPackagingArchRules.kt index 76eb43b..8ec8a3a 100644 --- a/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/ClassPackagingArchRules.kt +++ b/codestyle-archunit/src/main/kotlin/ru/touchin/codestyle/archunit/rules/ClassPackagingArchRules.kt @@ -1,4 +1,4 @@ -package ru.touchin.codestyle.archunit +package ru.touchin.codestyle.archunit.rules import com.tngtech.archunit.lang.ArchRule import com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes