рдпрд╣ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ! рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдбреЗрдЯреЗрдХ рд╕реЗ рдорд┐рд▓реЛ
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдЖрдк рдХреЗрд╡рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рддреБрд░рдВрдд рд╕реНрдерд╛рдкрдирд╛ рдмрд┐рдВрджреБ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдпрд╣ рдХреНрдпрд╛ рд╣реИ?

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдиреЗ рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд┐рдирд╛ (рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╡рд┐рдкрд░реАрдд) рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛рдФрд░ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдЪреНрдЫреЗ рдХреЛрдб рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЦрд░рд╛рдм рдХреЛрдб рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдмрд╣реБрдд рд▓рдЪреАрд▓реЗ рдЕрдиреБрдХреВрд▓рди рдХреА рдЕрдиреБрдорддрд┐ред рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдиреНрдЪ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдЯреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрдШрд░реНрд╖реЛрдВ рдкрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдбреЗрдЯрд╛, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдШрд░реНрд╖ рдХрд╣рд╛рдВ рд╣реБрдЖ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ред
рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рд╕рдореАрдХреНрд╖рдХ рдХреЗ рдХрд╛рдо рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЗ рд╕рдордп рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреАрдЖрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЗрдЦрдХ рдиреЗ рдРрд╕реЗ рдирд╛рдо рджрд┐рдП рд╣реИрдВ рдЬреЛ рдЪрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рд╣реИрдВ, рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рд░рд▓реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдбреЗрдЯреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рд╕реЗрдЯ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рдпрдо рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб-рд╕рдореАрдХреНрд╖рд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреАрдЖрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд▓реЗрдЦрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рдореАрдХреНрд╖рдХреЛрдВ рдХреЛ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдмрд╛рд░-рдмрд╛рд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рд╕реЗ рдереЛрдбрд╝реА рдЦреБрд╢реА рдорд┐рд▓реЗрдЧреАред
рдпрджрд┐ рдпрд╣ рддреЗрдЬрд╝ рд╣реИ рдФрд░ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВред (рдЧ) рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди
рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреНрдпрд╛ рд╣реИрдВ?
рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП:рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП:рдореИрдВ рдЖрдкрдХреЗ рд╕рд┐рд░ рдореЗрдВ рдЙрдардиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ, рдХреЛрдЯрд▓рд┐рди рдкрд░ рд╕реНрдкреЙрдЯ-рдмрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдбреЗрдЯреЗрдХ рдХрд╛ рдкрд░рд┐рдЪрдп
рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- AndroidStudio рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди
- Gradle
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЧреНрд░реЗрдбреЗрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯреЗрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛред рд▓реЗрдХрд┐рди, рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ,
рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ ред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ 1.0 рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ 1.0.0-RC14 рд╣реИ
So.
рд╣рдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
рдЧреНрд░реЗрдбрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.0-RC14" } }
рдпрд╣ рдирд┐рд░реНрдгрдп рд╣реИ рдХрд┐ рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЖрд╡реЗрджрди рд╣рдЯрд╛ рджрд┐рдпрд╛: рдкреНрд▓рдЧрдЗрди рд▓рд╛рдЗрди, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рдбреЗрдЯреЗрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рд╕реНрдЯреЗрдЬ 1:
рддреЛ, рдЗрд╕ рдХреЛрдб рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ build.gradle рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред
рд╡рд╣рд╛рдВ,
рдСрд▓рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ
, рд╣рдореЗрдВ рдЕрдкрдиреА рдлрд╛рдЗрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрди рд▓рд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯреЗрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
allprojects { apply from: "$rootDir/detekt.gradle" repositories { maven { url "https://plugins.gradle.org/m2/" } } }
рд╕реНрдЯреЗрдЬ 2:
рдлрд┐рд░ рдЖрдкрдХреЛ
detekt.gradle рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
apply plugin: "io.gitlab.arturbosch.detekt" detekt { toolVersion = "1.0.0-RC14"
рд╕реНрдЯреЗрдЬ 3:
рдЕрдм рдЖрдкрдХреЛ
detekt-config.yml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдпрд╣
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИред
рд╕реНрдЯреЗрдЬ 4:
рдПрдХ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
gradlew detektрд╡рд╣ рд╕рдм рд╣реИ!
рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЖрдВрдХрдбрд╝реЗ рд╣реИрдВред рд╡реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрде рдХреЗ рд╕рд╛рде рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: {u_project} \ app \ build \ report / detekt
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рдЬреЗрдирдХрд┐рдиреНрд╕ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ
2000 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдЧреЛрдВ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп 4-7 рд╕реЗрдХрдВрдб * рд╣реИред
рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рддрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдкреИрд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн:
рдбрд┐рдЯреЗрдХрдЯ рдЬреАрдердмрдбреЗрдЯреЗрдХ рд╕реЗрдЯ рдХрд░реЗрдВрдбрд┐рдлрд╝реЙрд▓реНрдЯ-detekt-config.yml