Maven(๋ฉ์ด๋ธ)์ด๋?
์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๊ฐ๋ฐํ๋ Java ๊ธฐ๋ฐ ํ๋ก์ ํธ์ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ๋ฅผ ์ํ ๋น๋ ๋๊ตฌ์ด๋ฉฐ ์ปดํ์ผ๊ณผ ๋น๋๋ฅผ ๋์์ ์ํํ๊ฑฐ๋ ์๋ฒ Deploy ์์์ ๊ด๋ฆฌํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฅ์ ๋ดํฌํ๊ณ ์๊ธฐ์ settings.xml / pom.xmlํ์ผ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๋์
ํ๋ฉด ๋ค์ด๋ก๋ ๋ฐ ์ค์น, ๊ฒฝ๋ก๊น์ง ์ง์ ํ๋ค.
ํน์ง
โ๏ธ 1. ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ pom.xml์ ์ ์ํ๋ฉด ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฟ๋ง ์๋๋ผ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ํ๋๋ฐ์ ํ์ํ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊น์ง ๋ค์ด๋ฐ๋๋ค.
โ๏ธ 2. ์ค์ ์ ์ฅ์๋ฅผ ํตํ ์๋ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ์ค์ ์ ์ฅ์(์ํ์น ์ฌ๋จ)๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ File Server๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฉฐ ๋ฉ์ด๋ธ์ ์๊ธฐ๋ง์ ์ค์ ์ ์ฅ์๋ฅผ ๊ตฌ์ถํ ์ ์๋ค.
โ๏ธ 3. ๊ฐ๋จํ ์ค์ ์ ํตํ ๋ฐฐํฌ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
์ค์ ํ์ผ
- settings.xml
- ๋ฉ์ด๋ธ ๋น๋ ํด๊ณผ ๊ด๋ จํ ์ค์ ํ์ผ
- MAVEN_HOME/conf ๋๋ ํ ๋ฆฌ์ ์์น
- ์ปค์คํ
์ค์
- POM(Project Object Model)
- pom.xml์ ๋งํ๋ฉฐ ๋ฉ์ด๋ธ์ ์ด์ฉํ๋ ํ๋ก์ ํธ root์ ์กด์ฌํ๋ xml ํ์ผ(ํ๋ก์ ํธ ์ต์์ ํด๋์ ํด๋น ํ์ผ ์์ฑ)
- ํด๋น ๊ธฐ๋ฅ์ ์ด์ฉํ๊ธฐ ์ํด POM์ด ์ฌ์ฉ๋จ.
- ํด๋น ํ์ผ์ ํ๋ก์ ํธ๋ง๋ค 1๊ฐ์ด๋ฉฐ ํด๋น ํ์ผ์ ํ๋ก์ ํธ์ ๋ชจ๋ ์ค์ , ์์กด์ฑ ๋ฑ์ ์ ์ ์๋ค.
์ฅ์
- ์ปดํ์ผ๊ณผ ๋น๋๋ฅผ ๋์ ์ํ ๊ฐ๋ฅ
- ์๋ฒ์ Deploy ์์์ ๊ด๋ฆฌํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต
- pom.xml ํ์ผ์ ํตํด ๊ด๋ฆฌํ๋ฏ๋ก ๊ฐ๋ฐ, ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ก์ ํธ ๋ฑ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ
- IDE์ ์ข
์๋ ๋ถ๋ถ๋ค์ ์ ๊ฑฐํ ์ ์์
- Maven Profile ๊ธฐ๋ฅ์ ํตํด ๋ฐฐํฌ ์ค์ ์ ๊ด๋ฆฌํ๊ณ ์์ฑํ ์ ์์
๋จ์
- Maven์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ์ง ์๋ ๋น๋ ๊ณผ์ ์ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ง์ด ๋ณต์กํจ
- ํน์ ํ๋ก๊ทธ์ธ ์ค์ ์ด ์กฐ๊ธ๋ง ๋ฌ๋ผ๋ ํด๋น ์ค์ ์ ๋ถ๋ฆฌ์์ผ๋ฒ๋ ค ์ค๋ณต ๊ธฐ์ ํ ๋๊ฐ ๋ฐ์ํจ. ์ด๋ ๋ถํ์ํ๊ฒ ์ค์ ์ด ๊ธธ์ด์ง๊ณ ์ค๋ณต, ๊ฐ๋
์ฑ ์ ํ๊ฐ ๋ฐ์ํ์ฌ ์ ์ง๋ณด์์ฑ์ ๋จ์ด๋จ๋ฆผ.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ก ์์กดํ๋ ๊ฒฝ์ฐ ๋ณต์กํด์ง๋ค.
- ์๋์ ์ผ๋ก ํ์ต ์ฅ๋ฒฝ์ด ๋๋ค.
์์ ๊ฐ์ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ทธ๋ ์ด๋ค(Gradle)์ด๋ผ๋ ๋น๋ ํด์ด ๋ฑ์ฅํ์๋ค.
์ฐธ๊ณ
goddaehee