λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Spring

[Spring] Maven λ©€ν‹°λͺ¨λ“ˆ ν”„λ‘œμ νŠΈ

by 주발2 2021. 2. 9.
λ°˜μ‘ν˜•

 μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€!

 λ„€μ΄λ²„ λΈ”λ‘œκ·Έ

 GitHub

Study-GitHub

 πŸ”


βœ” μŠ€ν”„λ§ - Maven λ©€ν‹°λͺ¨λ“ˆ(Multi-Module) ν”„λ‘œμ νŠΈ μ…‹νŒ…ν•˜κΈ°(IntelliJ)

 

μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ μΈν…”λ¦¬μ œμ΄μ—μ„œ Maven 기반의 Springμ—μ„œ λ©€ν‹°λͺ¨λ“ˆ ν”„λ‘œμ νŠΈ μ…‹νŒ…ν•˜κΈ°μž…λ‹ˆλ‹€.

 

 

 

 λ©€ν‹° λͺ¨λ“ˆμ΄λž€ ? 

ν•œ ν”„λ‘œμ νŠΈμ— 라이브러리처럼 μ‚¬μš© κ°€λŠ₯ν•œ μƒνƒœλ‘œ λͺ¨λ“ˆλ“€μ„ κ΅¬μ„±ν•˜κ³ , λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ„€μ •ν•˜λŠ” 것을 λ§ν•˜λŠ”λ°μš”, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ—¬λŸ¬ κΈ°λŠ₯을 λΆ„ν• ν•΄μ„œ μ—¬λŸ¬ λͺ¨λ“ˆλ‘œ λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
보닀 μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜ μ‚¬μ΄νŠΈλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš” !
woowabros.github.io/study/2019/07/01/multi-module.html

 

 

 

 

βœ” ν”„λ‘œμ νŠΈ 생성

 λ¨Όμ € Maven 기반 μŠ€ν”„λ§ λΆ€νŠΈ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

    • Spring Initializer > Maven 선택 ν•˜κ³  μ „λΆ€ Nextλ₯Ό λˆ„λ₯΄κ³  ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

 

 

 

 

 

 

 

pom.xml 에 packaging νƒœκ·Έμ— pom을 μž‘μ„±ν•˜κ³  maven을 μ—…λ°μ΄νŠΈ ν•©λ‹ˆλ‹€.

(νŒ¨ν‚€μ§•μ„ 해주지 μ•ŠμœΌλ©΄ Maven λͺ¨λ“ˆ 생성 μ‹œ μž‘μ—…μ΄ μ§„ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)

 

 

 

 

βœ” Module 생성

 ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν–ˆμœΌλ©΄ Module을 μƒμ„±ν•΄μ€λ‹ˆλ‹€.

    • ν”„λ‘œμ νŠΈ 우클릭 > New > Module 클릭

 

 

 

 

 Maven 선택 ν›„ Next

Module name μ„€μ • ν›„ Finishλ₯Ό 톡해 λͺ¨λ“ˆμ„ μƒμ„±ν•©λ‹ˆλ‹€.

    Parent에 parent pom이 μ§€μ •λ˜μ–΄ μžˆλŠ” κ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

 

ν”„λ‘œμ νŠΈμ— child-module λΌλŠ” ν”„λ‘œμ νŠΈκ°€ μƒμ„±λœ κ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

 

 λ˜ν•œ child ν”„λ‘œμ νŠΈμ˜ pom에 <parent> νƒœκ·Έλ‘œ λΆ€λͺ¨ ν”„λ‘œμ νŠΈλ₯Ό μ°Έμ‘°ν•˜λŠ”κ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

  β€» 이 νƒœκ·Έκ°€ λΆ€λͺ¨ ν”„λ‘œμ νŠΈμ˜ μ˜μ‘΄μ„±λ“€μ„ κ°€μ Έμ˜€λŠ” νƒœκ·Έμž…λ‹ˆλ‹€.

 

 

 

• λΆ€λͺ¨(parent) pom에 보면 상단에 μ „μ—λŠ” μ—†λ˜ modules νƒœκ·Έκ°€ μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

 

 

* ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ λΆ€λͺ¨(parent-module) ν”„λ‘œμ νŠΈμ˜ pom에 web λ””νŽœλ˜μ‹œλ₯Ό μΆ”κ°€ν•΄μ€λ‹ˆλ‹€.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

 

 

* child-module ν”„λ‘œμ νŠΈμ˜ 포트λ₯Ό λ³€κ²½ν•΄μ€λ‹ˆλ‹€.

(application.properties μ†μ„±μ—μ„œ λ³€κ²½ν•΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.)

 

server.port=8088

 

 

 

그럼 λΆ€λͺ¨ ν”„λ‘œμ νŠΈλŠ” ν¬νŠΈκ°€ 8080이고, μžμ‹ ν”„λ‘œμ νŠΈλŠ” ν¬νŠΈκ°€ 8088 μž…λ‹ˆλ‹€.

이제 두 ν”„λ‘œμ νŠΈλ₯Ό κΈ°λ™ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

 

βœ” parent-module ν”„λ‘œμ νŠΈ

 

βœ” child-module ν”„λ‘œμ νŠΈ

 

 

μ„œλ²„λ‘œ μ ‘μ†ν•˜λ©΄ 두 ν”„λ‘œμ νŠΈ λͺ¨λ‘ κΈ°λ™λœκ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•

λŒ“κΈ€