рдЕрдХреНрд╕рд░ рдореЗрд░реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ, рд╕реНрдкреНрд░рд┐рдВрдЧ + рдХреЛрдгреАрдп рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ IntelliJ IDEA рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдПрдХ рдЦрд╛рд▓реА рдЧреНрд░реЗрдбреЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, IDEA рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЧреНрд░реЗрдбрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЬрдмрдХрд┐ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВред

рд╣рдорд╛рд░реА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ "рдбреЗрдореЛ" рдФрд░ рд╕рдореВрд╣ "com.habr" рд╣реЛрдиреЗ рджреЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, settings.gradle рдФрд░ build.gradle рдлрд╛рдЗрд▓реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдВрдЧреА:
build.gradle
group 'com.habr' version '1.0'
settings.gradle
rootProject.name = 'demo'
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ
рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░реЗрдЧрд╛, рдЕрд░реНрдерд╛рддреНред рд╡рд╕рдВрддред

рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рд╕реНрдкреНрд░рд┐рдВрдЧ рдЕрдирд┐рд▓рд┐рдЬрд╝реНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЖрдЗрдП рдореЙрдбреНрдпреВрд▓ "рдбреЗрдореЛ-рд╕рд░реНрд╡рд░" рдХрд╛ рдирд╛рдо рджреЗрдВ, рдЧреНрд░реЗрдбрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░, рд╕рдореВрд╣ com.habr рдФрд░ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ org.habr.demo рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред

рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ "рд╡реЗрдм" рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬрд╝ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЗрдореЛ-рд╕рд░реНрд╡рд░ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ 2 рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЧрдИ рдереАрдВ: build.gradle рдФрд░ settings.gradleред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ settings.gradle рд╕реЗ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕.gradle рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ settings.gradle рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
pluginManagement { repositories { gradlePluginPortal() } }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
settings.gradle
pluginManagement { repositories { gradlePluginPortal() } } rootProject.name = 'demo' include 'demo-server'
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдбреЗрдореЛ-рд╕рд░реНрд╡рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ build.gradle рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ:
group = 'com.habr' version = '0.0.1'
рдЗрд╕ рдкрд░, рдкрд╣рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗред
рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдБ
рд╣рдо java gradle рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ Demo-ui рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЖрдЗрдП рдирд┐рд░реНрдорд┐рдд рдореЙрдбреНрдпреВрд▓ "рдбреЗрдореЛ-рдпреВрдЖрдИ" рдХрд╛ рдирд╛рдо рджреЗрдВред

рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЖрдкрдХреЛ src рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВред

рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
ng new demo-ui
рдХрдорд╛рдВрдб рдХреЛрдгреАрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдбреЗрдореЛ-рдпреВрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдиреЛрдб-рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмрдирд╛рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрд╡рдпрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рд╣рдо рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдбреЗрдореЛ-рдпреВрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдХреЛ рдирд┐рдореНрди рдлреЙрд░реНрдо рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ:
plugins { id 'java' id "com.moowork.node" version "1.3.1" } node { version = '10.14.1' npmVersion = '6.4.1' download = true } jar.dependsOn 'npm_run_build' jar {
рдореЙрдбреНрдпреВрд▓ рддреИрдпрд╛рд░ рд╣реИред
рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ
рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдореЛ-рд╕рд░реНрд╡рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ build.gradle рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
implementation project(':demo-ui')
рдирддреАрдЬрддрди, рд╣рдореЗрдВ "рдбреЗрдореЛ-рд╕рд░реНрд╡рд░" рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд build.gradle рдорд┐рд▓рддреЗ рд╣реИрдВ:
plugins { id 'org.springframework.boot' version '2.1.5.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation project(':demo-ui') implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
рд▓рд╛рдВрдЪ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЧреНрд░реЗрдбрд▓ рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВред

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕реЗ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдк рдПрдХ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВред

рдЕрд╕реЗрдВрдмрд▓ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдбреЗрдореЛ-рд╕рд░реНрд╡рд░ / рдмрд┐рд▓реНрдб / рд▓рд┐рдмрд╛рд╕ рдореЗрдВ рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рд╣реЛрдЧреАред
