๐งโ๐ณSpring Boot์์ Maven: ๋น์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ์ ฐํ
Source: Dev.to
Maven์ด๋?
Maven์ ์ฃผ๋ก Java ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ๋น๋ ์๋ํ ๋ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ์
๋๋ค.
Spring Boot ์ ํ๋ฆฌ์ผ์ด์
์์ Maven์ ๋ค์๊ณผ ๊ฐ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค:
- ์์กด์ฑ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ๊ตฌ์กฐ ์ ์
- ๋น๋ ํ๋ก์ธ์ค ์๋ํ
- ๋ฐฐํฌ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง
๊ฐ๋จํ ๋งํด, Maven์ Spring Boot ํ๋ก์ ํธ์ ์ ์ฒด ๊ฐ๋ฐ ๋ผ์ดํ์ฌ์ดํด์ ๋ด๋นํฉ๋๋ค.
์ ฐํ
Maven์ ์ฃผ๋ฐฉ์ ์ ฐํ๋ผ๊ณ ์๊ฐํด ๋ณด์ธ์. ๊ฐ๋ฐ์(๋น์ )๋ ๋ค์์ ์ ๊ณตํฉ๋๋ค:
- ๋ ์ํผ(
pom.xml) - ์ฌ๋ฃ(์์กด์ฑ)
Maven์:
- ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ๊ฐ์ ธ์ต๋๋ค
- ๋ชจ๋ ๊ฒ์ ์ ์ ํ ์์ต๋๋ค
- ์ต์ข ์๋ฆฌ(JAR / WAR ํ์ผ)๋ฅผ ์ค๋นํฉ๋๋ค
์ด๋ป๊ฒ ์ค๋น๋๋์ง ์ ๊ฒฝ ์ธ ํ์ ์์ต๋๋ค โ Maven์ด ์์์ ์ฒ๋ฆฌํฉ๋๋ค.
ํ๋ก์ ํธ ๋ฐ ์์กด์ฑ ๊ด๋ฆฌ
Maven์ pom.xml์ด๋ผ๋ ์ ์ธํ XML ํ์ผ์ ์ฌ์ฉํ์ฌ Java ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด ํ์ผ์ ํตํด ๊ฐ๋ฐ์๋ ๋ค์์ ์ ์ํ ์ ์์ต๋๋ค:
- ํ๋ก์ ํธ ๋ฉํ๋ฐ์ดํฐ
- ์์กด์ฑ
- ํ๋ฌ๊ทธ์ธ
- ์ ์ฅ์
- ๋น๋ ์ค์
Spring Core, Spring MVC, Spring Boot๊ณผ ๊ฐ์ Spring ๋ชจ๋์ ๋ชจ๋ Maven ์์กด์ฑ์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ, Maven์ด ์๋์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ , ํด๊ฒฐํ๊ณ , ๊ด๋ฆฌํฉ๋๋ค.
Maven์ ๋น๋ ์๋ํ
Maven์ ๋ค์๊ณผ ๊ฐ์ ๋ฏธ๋ฆฌ ์ ์๋ ๋ผ์ดํ์ฌ์ดํด ๋จ๊ณ๋ค์ ์ฌ์ฉํด ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํฉ๋๋ค:
cleancompiletestpackageinstalldeploy
์ด ์๋ํ ๋๋ถ์:
- ์ฝ๋๋ ์ผ๊ด๋๊ฒ ์ปดํ์ผ๋ฉ๋๋ค
- ํ ์คํธ๊ฐ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค
- ์ ํ๋ฆฌ์ผ์ด์ ์ด JAR ๋๋ WAR ํ์ผ๊ณผ ๊ฐ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํฐํฉํธ๋ก ํจํค์ง๋ฉ๋๋ค
์ด๋ก ์ธํด ๋น๋๊ฐ ์ ๋ขฐํ ์ ์๊ณ ํ๊ฒฝ์ ๊ด๊ณ์์ด ๋ฐ๋ณต ๊ฐ๋ฅํฉ๋๋ค.
Maven ๋ช ๋ น์ด
# Removes all previously generated build files.
mvn clean
# Compiles the project source code.
mvn compile
# Runs the projectโs test cases.
mvn test
# Packages the application into a JAR or WAR file.
mvn package
# Packages the application and stores it in the local Maven repository for reuse.
mvn install
# Uploads the packaged JAR / WAR to a remote repository for team usage.
mvn deploy
Spring Boot ์ ์ฉ ๋ช ๋ น์ด
# Runs a Spring Boot application directly from source code without packaging.
mvn spring-boot:run
# Builds a Docker image for the Spring Boot application using the Spring Boot Maven plugin.
mvn spring-boot:build-image
Spring Boot์์ Maven์ ์ค์์ฑ
Maven ์์ด
- ์์กด์ฑ ๊ด๋ฆฌ๊ฐ ๋ณต์กํด์ง๋๋ค
- ๋น๋๊ฐ ์ผ๊ด๋์ง ์์ต๋๋ค
- ๋ฐฐํฌ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค
Maven ์ฌ์ฉ ์
- ์์กด์ฑ ๋ฒ์ ์ ์ ์ดํ ์ ์์ต๋๋ค
- ๋น๋๊ฐ ์๋ํ๋ฉ๋๋ค
- Spring Boot ๊ฐ๋ฐ์ด ์ํํ๊ณ ์์ธก ๊ฐ๋ฅํด์ง๋๋ค
Maven์ Spring Boot ๊ฐ๋ฐ์ ํต์ฌ ์ถ ์ค ํ๋์ ๋๋ค. Maven์ ์ดํดํ๋ ๊ฒ์ Spring Boot์ ์ต์ํด์ง๋ ๋ฐ ํ์์ ์ ๋๋ค. Maven์ ๋ช ํํ ์ดํดํ๋ฉด:
pom.xml์ด ์ดํด๋๊ธฐ ์์ํฉ๋๋ค- ์์กด์ฑ ๋ฌธ์ ๊ฐ ๊ฐ์ํฉ๋๋ค
- ๋น๋์ ๋ฐฐํฌ๊ฐ ์์ํด์ง๋๋ค
์ด ๊ธ์ ์ ๊ฐ Spring Boot์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๊ตฌํ๋ฉด์ ์งํํ๋ ๊ณต๊ฐ ํ์ต ์ฌ์ ์ ์ผ๋ถ์ ๋๋ค.