Maven
ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ข ์๊ด๊ณ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊น์ง ์๋์ผ๋ก ๊ด๋ฆฌํด์ฃผ๋ ๋๊ตฌ๋ก ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ๋ผ์ดํ์ฌ์ดํด์ ๊ด๋ฆฌํ๋ ๋๊ตฌ๋ก ๋น๋๊น์ง ์ํ
๋ผ์ดํ ์ฌ์ดํด ์ข
๋ฅ
๊ธฐ๋ณธ(Default)
compile : ํ๋ก์ ํธ์ ์์ค์ฝ๋๋ฅผ ์ปดํ์ผ
test : ์ ๋ ํ ์คํธ๋ฅผ ์ํํ๋ ๋จ๊ฒ๋ก (์ด๋ฅผ ์คํจ์ ๋น๋ ์คํจ๋ก ์ฒ๋ฆฌ)
package -> ์ฐ์ถ๋ฌผ ์์ฑ (์ค์ ์ปดํ์ผ๋ ์์ค์ฝ๋์ ๋ฆฌ์์ค๋ค์ jar๋ฑ์ ๋ฐฐํฌ๋ฆ ์ํ ํจํค์ง๋ก ๋ง๋๋ ๋จ๊ณ)
install -> ๋ก์ปฌ ์ ์ฅ์ ๋ฐฐํฌ (ํจํค์ง๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ์ค์น)
deploy -> ์๊ฒฉ ์ ์ฅ์ ๋ฐฐํฌ (๋ง๋ค์ด์ง ํจํค์ง๋ฅผ ์๊ฒฉ์ ์ฅ์์ release)
clean
clean : ์ด์ ๋น๋์์ ์์ฑ๋ ํ์ผ๋ค์ ์ญ์
site
site -> ๋ฌธ์ ์ฌ์ดํธ ์์ฑ (ํ๋ก์ ํธ ๋ฌธ์๋ฅผ ์์ฑ)
site-deploy -> ์๋ฒ ๋ฐฐํฌ
๊ฐ ๋ผ์ดํ ์ฌ์ดํด ์์ phase
๊ฐ ์กด์ฌํ๋ค ๊ฐ phase๋ฅผ ํตํด maven๋ช
๋ น์ ๋ด๋ฆด ์ ์๊ณ ์ค๊ฐ ๋จ๊ณ์ phase๋ฅผ ์คํ ํ๋ค๋ฉด ์ด์ ๋จ๊ณ์ ๋ผ์ดํ์ฌ์ดํด ๋ชจ๋ ์๋์ผ๋ก ์คํ๋๋ค.
(ex. mvn install
, Run As
, Maven clean
๋ฑ)
Phase๋ build ๋ผ์ดํ ์ฌ์ดํด ๊ฐ๊ฐ์ ๋จ๊ฒ๋ฅผ ์๋ฏธํ๋ฉฐ ์์กด๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ ์ด์ ์ ๋จ๊ณ์ Phase๊ฐ ๋ชจ๋ ์ํ๋์ด์ผ ํ๋ค.
Maven์์ ์ ๊ณตํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ์ผ๋ก ๋์
๊ฐ๊ฐ์ Phase๋ ์ด๋ค ์ผ์ ํ ์ง ์ ์ํ์ง ์๊ณ ์ด๋ค ํ๋ฌ๊ทธ์ธ์ Goal์ ์คํํ ์ง ์ค์
๊ฐ phase์๋ plugin์ด ์กด์ฌํ์ฌ ์ด plugin
์์ ์ํ๊ฐ๋ฅํ ๋ช
๋ น์ goal
์ด๋ผ๊ณ ํ๋ค.
(ex. mvn plugin:goal
ํํ๋ก jar:jar
, resource:testResource
๋ฑ์ ํํ )
ํ๋์ ํ๋ฌ๊ทธ์ธ์์ ์ฌ๋ฌ์์ ์ ์ํํ ์ ์๋๋ก ์ง์ํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ์์ ์คํํ ์ ์๋ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ Goal์ด๋ผ๊ณ ํ๋ค.
pom.xml
Project Object Model์ ์ฝ์๋ก ํ๋ก์ ํธ ๊ฐ์ฒด ๋ชจ๋ธ ์ ๋ณด
๋ฅผ ๋ด๊ณ ์๋ ํ์ผ์ XMLํ์์ ํ์ผ๋ก ์ ์
๋ค๋ฃจ๋ ์ ๋ณด
ํ๋ก์ ํธ ์ ๋ณด : ์ด๋ฆ, ๊ฐ๋ฐ์ ๋ชฉ๋ก, ๋ผ์ด์ผ์ค ๋ฑ
๋น๋ ์ค์ : ์์ค, ๋ฆฌ์์ค, ๋ผ์ดํ ์ฌ์ดํด ๋ณ ์คํํ ํ๋ฌ๊ทธ์ธ ๋ฑ
๋น๋ ํ๊ฒฝ : ์ฌ์ฉ์ ํ๊ฒฝ ๋ณ๋ก ๋ฌ๋ผ์ง ์ ์๋ ํ๋กํ์ผ ์ ๋ณด
POM ์ฐ๊ด ์ ๋ณด : ์์กด ๋ชจ๋, ์์ ํ๋ก์ ํธ, ํ์ ๋ชจ๋ ๋ฑ
dependency
scope : ๋ฒ์
optional : ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์กด์ฑ์ด ์ถ๊ฐ๋์ง ์๋๋ค.
mvn spring-boot:run๊ณผ java -jar ์ฐจ์ด
๋ณดํต mvn์ ์ฝ๋๋ฅผ ๋น๋,ํ
์คํธ ๋ฐ ํจํค์งํ๋๋ฐ ๋์์ฃผ๋ ๋๊ตฌ๋ก ์ฌ๋ฐ๋ฅธ dependecy ๋ฒ์
์ ํด๊ฒฐํด์ฃผ๊ฑฐ๋ ์คํ๊ฐ๋ฅํ jar/war ํ์ผ์ ๋ชจ๋ dependecy๋ฅผ ํจํค์ง
ํ๊ณ java -jar์ -cp์ต์
์ด๋ ๊ฒฝ๋ก ์ง์
์ ํ ํ์๊ฐ ์๋ค.
ํ์ง๋ง mvn์ ํตํ ์คํ์ ์ํ์น ํฐ์บฃ์ ๋ค์ด๋ก๋์ ํฐ์บฃ์ ์์์ผ๋ก ์ด๊ธฐํ ํ๊ณ goal์ ๋ง๋ ์์
์ ์ํํด์ผํ๊ณ ๋ง์ผ production
์์ ์คํํ๊ฒ ๋๋ค๋ฉด maven ์ค์น
, jdk
์ค์น, ์ฝ๋๋ฒ ์ด์ค ๋ณต์ฌ
, mvn ๋ชจ๋ ์๋ช
์ฃผ๊ธฐ ์คํ
๊ณผ ๊ฐ์ด ์๊ฐ๊ณผ ๋น์ฉ์ ์ธก๋ฉด์์ ๋ชจ๋ ๋ญ๋น๊ฐ ๋๋ค.
develop๋จ๊ณ๋ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋๋ง๋ค ์ฌ๋ฐ๋ฅธ ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ณ ๋ณ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ฉฐ ๋์ด์์ ์๋น์ค๋ฅผ ๋์์ ์คํํ ๊ฒฝ์ฐ๋ ๋๋์ฑ ๋นํจ์ธ์ ์ผ ๊ฒ์ด๋ค.
์ด๋ด๋๋ maven์ ์ด์ฉํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ผ ์ ์๋ค.
Reference
https://www.baeldung.com/spring-boot-run-maven-vs-executable-jar
Last updated