рдЧреНрд░реЗрдбрд▓: рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛

рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (рдФрд░ рди рдХреЗрд╡рд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреЗ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ (рдЬрдм рддрдХ рдХрд┐ рдпрд╣ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!") рдирд╣реАрдВ рд╣реИред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рд╣рд╛рде рд╕реЗ рдПрдХ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЙрдмрд╛рдК рд╣реИред рд╣рд╛рдВ, рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдФрд░ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ, рдЙрд╕рдХреЗ рдирд╛рдо рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдиреАрдЪреЗ рд░рдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЗрдВрдЯ рдмреЗрдХ рдХрд┐рддрд╛рдмреЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред рдФрд░ рд╡рд╣рд╛рдБ рдирд┐рд░рдВрддрд░рддрд╛ рдХреНрд╖рд┐рддрд┐рдЬ рдкрд░ рдХрд░рдШреЗред рдФрд░ CI рд╕рд░реНрд╡рд░ рдХреЛ рдпрд╣ рд╕рд┐рдЦрд╛рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдп рд╣реИрдВред



рдПрдХ рдмрд╛рд░ рдЬрдм рдХрд╛рд░реНрдп рд╣реЛрддреЗ рд╣реИрдВ, рддрдм рд╕рдорд╛рдзрд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░, рд▓реЗрдХрд┐рди рдЪреАрдВрдЯреА рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВ: GAnt, Buildr, рдЖрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рдкреНрд▓рд╕ рдФрд░ рдорд┐рдирд╕ рдХреЗ рдЕрдкрдиреЗ рд╕реЗрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдирдпрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред Gradle ред





рдЧреНрд░реИрдб рдЪреАрдВрдЯреА, рдорд╛рд╡реЗрди рдФрд░ рдЖрдЗрд╡реА рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧреНрд░реВрд╡реА рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реБрдЖред рдЕрдм, рдмреИрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬрд╛рд╡рд╛ рдФрд░ xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдмрд╕ Groovy рдмреЛрд▓реА рдореЗрдВ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреАрд╡рди рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдмреЛрд▓реА рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛, рдкрд░реАрдХреНрд╖рдг, рддреИрдирд╛рддреА, рдирд┐рд░реНрдпрд╛рдд, рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред



рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░реИрдЧрд▓ рдПрдХ рд░рдирд┐рдВрдЧ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдВрдЯ рдЯрд╛рд╕реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЕрдкрд╛рдЪреЗ рдЖрдЗрд╡реА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЯреВрд▓реНрд╕ рдФрд░ рдЕрдиреНрдп рдореМрдЬреВрджрд╛ рдЯреВрд▓реНрд╕ (TestNG, JUnit, Surefire, Emma, тАЛтАЛрдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреНрд░реИрдбрд▓ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдЧреНрд░реВрд╡реА рдмреЛрд▓реА рдЖрдкрдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдкреВрд░реА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддреА рд╣реИред рдХрд╛рдлреА рдкреВрд░рд╛ред рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреГрдкрдпрд╛! рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд╛рд╣рд┐рдП? рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝реЗрдВ рдФрд░ рд▓рд┐рдЦреЗрдВ? рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ? рдордХреНрдЦреА рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ? рдХреБрдЫ рднреА! рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп, рдорд╛рдирд╡ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ, рдЦреМрдлрдирд╛рдХ xml-constructs рдирд╣реАрдВред



рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛: рдПрдХ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░реЗрдбрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорд╢реАрди рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЧреНрд░реЗрдбрд▓ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред рд╕реНрд░реЛрдд рдЯреНрд░реА рдореЗрдВ (рдЬреЛ рдЧреНрд░реИрдбрд▓ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛) 4 рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рд╡рд┐рди / * рдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП 2 рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп, 1 рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рдЬрд╛рд░ред рдХреЗрд╡рд▓ ~ 20Kb рдкрд░ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдорд╢реАрди рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╡реЗрдм рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдЧреНрд░реЗрдбреЗрд▓ рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдмрд┐рд▓реНрдб рдЕрдк рдХрд░рдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзреНрдпрд╛рди рд░рдЦреЗрдЧреАред



рдЧреНрд░реИрдбрд▓ рдХреА рдУрд░ рдкрд▓рд╛рдпрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд╡реЗрди 2 рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЧреНрд░реИрдбрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛, рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ, рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЙрдкрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП)ред рдФрд░ рдкреНрд░рд╡рд╛рд╕ рд╢реБрд░реВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдЕрдм рдЗрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЧреНрд░реЗрд▓реНрд╕ , рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА , рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЛрд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ GAnt (рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, GAnt рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ!)ред



рдкреНрд░рд╢рдВрд╕рд╛ рдХреА, рдЕрдм рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, 'рдмрд┐рд▓реНрдб-рдмрд╛рдп-рдХрдиреНрд╡реЗрдВрд╢рди' рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред рдФрд░ рдлрд┐рд░ рд╣рдо 'рдХрдиреНрд╡реЗрдВрд╢рди' рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдЧреНрд░реЗрдбрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдирдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ (рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╣рдЬрд╛рд░ рдмрд╛рд░ рджреЗрдЦрд╛ рд╣реИ):



 / рдкрд░рд┐рдпреЛрдЬрдирд╛
    / src
       / рдореБрдЦреНрдп
          / рдЬрд╛рд╡рд╛
          / рд╕рдВрд╕рд╛рдзрди
       / рдкрд░реАрдХреНрд╖рдг
          / рдЬрд╛рд╡рд╛
          / рд╕рдВрд╕рд╛рдзрди




рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА build.gradle рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рд╣рдо рд╡рд╣рд╛рдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:



apply plugin:'java'
      
      







рдЧреНрд░реЗрдбреЗрд▓ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:



>gradle build

:compileJava

:processResources

:classes

:jar

:assemble

:compileTestJava

:processTestResources

:testClasses

:test

:check

:build



BUILD SUCCESSFUL



Total time: 4.116 secs








рдХрдВрд╕реЛрд▓ рдореЗрдВ, рд╣рдо рдХрд╛рд░реНрдпреЛрдВ (рд╕реАрдбрд▓ рдЯрд╛рд╕реНрдХ) рдХреЗ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдЪреАрдВрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд░реАрдм рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВред / рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдЖрдк рд╕рдВрдХрд▓рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ (рдЬрд╛рд░ рдореЗрдВ рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рдкреИрдХ рдХрд┐рдП рдЧрдП рд╕рд╣рд┐рдд), рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдЕрдиреНрдп рдмрд┐рд▓реНрдб рдкрд░рд┐рдгрд╛рдо рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдпрд╣ рд╕рдм рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рддрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реИрдВред рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдПрдХ рд╣реА pom.xml (рдХреЗрд╡рд▓ build.gradle рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╕рдбрд╝реЗ рд╣реБрдП рдЯрдорд╛рдЯрд░реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдордд рдХрд░реЛ рдФрд░ рдореБрдЭреЗ рдЧреНрд░реИрдбрд▓ рдХреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рджреЗрдВред



рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВред рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╢рд╛рдЦрд╛ рдмрдирд╛рдПрдБ:



 / рдкрд░рд┐рдпреЛрдЬрдирд╛
    / src
       / рдореБрдЦреНрдп
       / рдкрд░реАрдХреНрд╖рдг
       / рдкреВрд░реНрдгрд╛рдВрдХ
          / рдЬрд╛рд╡рд╛
          / рд╕рдВрд╕рд╛рдзрди




рдФрд░ build.gradle рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 sourceSets { integTest }
      
      







рдЧреНрд░реИрдбрд▓ рд╕реНрд░реЛрдд рд╕реЗрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдПрдХ рдирдпрд╛ рд╕реНрд░реЛрдд рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрд░реЛрдд рдФрд░ рд╕рдВрд╕рд╛рдзрди рдХреНрд░рдорд╢рдГ /project/src/< source set>/java



рдФрд░ /project/src/< source set>/resources



рдЬрд╛рдПрдВрдЧреЗред рдЬрд╛рд╡рд╛ рдкреНрд▓рдЧрдЗрди, рдЬрд┐рд╕реЗ рд╣рдо рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рджреЛ рдорд╛рдирдХ рд╕реНрд░реЛрдд рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ: main



рдФрд░ test



ред



рддреАрди рдирдП рдХрд╛рд░реНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреЗ: рд╕рдВрдХрд▓рди (compileIntegTestJava), рд╕рдВрд╕рд╛рдзрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг (processIntegTestResource) рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХред рдЖрдЗрдП рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:



>gradle integTestClasses

:compileIntegTestJava

:processIntegTestResources

:integTestClasses



BUILD SUCCESSFUL



Total time: 1.675 secs








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

рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ, рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:



 configurations { integTestCompile { extendsFrom compile } } sourceSets { integTest{ compileClasspath = sourceSets.main.classes + configurations.integTestCompile } }
      
      







Congfigurations



рдмреНрд▓реЙрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ ред рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рд╡реЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ, рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рдЖрджрд┐ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо compile



рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ main



рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ (рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рд╣реИ



рд▓рд╛рдЗрди sourceSets.main.classes + configurations.integTestCompile



рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдорд┐рд▓рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред main.classes



- рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдВ * .class рдлрд╛рдЗрд▓реЗрдВ main



рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред



рд╢рд╛рдпрдж, рдЬрдм рдирд┐рд░реНрдорд╛рдг, JUnit рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдФрд░ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рднреА рдЪрд▓рд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЪрд▓реЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдПрдХ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред



 configurations { integTestCompile { extendsFrom compile } integTestRuntime { extendsFrom integTestCompile, runtime } } repositories { mavenCentral() } dependencies { integTestCompile "junit:junit:4.8.1" } sourceSets { integTest{ compileClasspath = sourceSets.main.classes + configurations.integTestCompile runtimeClasspath = classes + sourceSets.main.classes + configurations.integTestRuntime } } task integrationTest(type: Test) { testClassesDir = sourceSets.integTest.classesDir classpath = sourceSets.integTest.runtimeClasspath }
      
      







Repositories



рдмреНрд▓реЙрдХ рд╣рдореЗрдВ рдорд╛рд╡реЗрди рдХреЗрдВрджреНрд░реАрдп (рдФрд░ рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдХреЗ рдЕрдиреНрдп рднрдВрдбрд╛рд░) рд╕реЗ рдЬреЛрдбрд╝реЗрдЧрд╛ред dependencies



рдмреНрд▓реЙрдХ рд╣рдорд╛рд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдПрдХ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред runtimeClasspath = classes + sourceSets.main.classes + configurations.integTestRuntime



, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ integTest.classes



, main.classes



рдФрд░ integTestRuntime



рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд runtimeClasspath = classes + sourceSets.main.classes + configurations.integTestRuntime



ред



рдореБрдЭреЗ рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд▓рд┐рдЦрдирд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛: рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд╡рд░реНрдЧрдкрде рдХреЗ рд╕рд╛рде, рдЕрд░реНрдерд╛рддреНред "рдХреНрдпрд╛"ред "рдХреИрд╕реЗ" рдЧреНрд░реЗрдбрд▓ рдЕрдкрдиреЗ рджрдо рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред



рдЕрдм рд╣рдо рддреИрдпрд╛рд░ рд╣реИрдВ:



>gradle clean integrationTest

:clean

:compileJava

:processResources

:classes

:compileIntegTestJava

:processIntegTestResources UP-TO-DATE

:integTestClasses

:integrationTest



BUILD SUCCESSFUL



Total time: 4.195 secs









рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ integTest.compileClasspath



рдиреЗ integTest.compileClasspath



рдкрд░ integTest.compileClasspath



рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ main.classes



рдФрд░ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдПрдХрддреНрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ main



рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛!



рдирддреАрдЬрддрди, рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрдк-рдореБрдЦреМрдЯреЗ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдпрд╣ рд╕рдм рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдардиреАрдп рднрд╛рд╖рд╛ рдХреА рдорджрдж рд╕реЗ рд╣реЛрддрд╛ рд╣реИред



рдЕрднреА рддрдХ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ: рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЪреАрдВрдЯреА рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдорд╛рдирдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЗрди-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред ред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ, рд╢рд╛рдпрдж, рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдореЗрдВред



All Articles