728x90
728x90
ํ์ต ๋ชฉํ
1. Maven ๊ธฐ๋ณธ ์ ์ ์ดํด
2. Maven ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์ดํด
3. Maven ๋น๋ ์๋ํ ๊ธฐ๋ฅ ์ดํด
4. Maven ํ๋ก์ ํธ ์์ฑ
๋ฉ์ด๋ธ(Maven)?
๋น๋ ์๋ํ + ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ
- ํ๋ก์ ํธ (๋ผ์ด๋ธ๋ฌ๋ฆฌ) ๊ด๋ฆฌ
- pom.xml → ํ๋ก์ ํธ ๊ด๋ จ jar ํ์ผ ๋ค์ด๋ก๋ ๋ฐ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ์ฐ์ถ๋ฌผ์ ์ผ๊ด๋ ๊ตฌ์กฐ๋ก ๊ด๋ฆฌ
- ๋น๋ ์๋ํ
- ๋น๋ ์์ ๊ฐ์ํ ๋ฐ ์ผ๊ด์ฑ
- ์ผ๊ด์ฑ ์๋ ํตํฉ ํ๊ฒฝ ์ ๊ณต
- ๋น๋ (Build) : ์์ค์ฝ๋ → ์คํ ์ฝ๋ ๋ณํ ํ, ๋ฐฐํฌํ๋ ๊ณผ์
1. ๋ฉ์ด๋ธ์ ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ
ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ
- ๊ฐ๋ฐ์ ํ๋ก์ ํธ ๊ด๋ฆฌ ์ค์ ์ ๋ฉ์ด๋ธ์ด ๋ฏธ๋ฆฌ ์ ์ํ ์ค์ ์ผ๋ก ๋์ฒด
- ์ ํํ๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ๊ด๋ฆฌ (pom.xml)
- ์์กด์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ → ํธ๋ฆฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ๋น๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ฌ๊ทธ์ธ ์๋ ๋ค์ด๋ก๋
- ์ค์ ์ ์ฅ์
- ๋ก์ปฌ ์ ์ฅ์
- ๋น๋ ํ๋ก์ธ์ค ๊ด๋ฆฌ (pom.xml) → ํ๋ฌ๊ทธ์ธ ์ค์ ์ผ๋ก ๋น๋ ์๋ํ
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ธฐ๋ณธ ์ค์ (pom.xml)
- ์น ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ : ์๋ฐ ์์ค์ ๋ฆฌ์์ค ๋๋ ํ ๋ฆฌ๋ ๋ฉ์ด๋ธ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์งํ๊ณ ์น ์์์ ๊ด๋ฆฌํ๋ ๋ณ๋์ webapp ๋๋ ํ ๋ฆฌ ์ฌ์ฉ
- ์๋ฐ ์์ค์ฝ๋ ๊ฒฝ๋ก (source code) → ${basedir}/src/main/java
- ์ค์ ํ์ผ ๊ฒฝ๋ก (resources) → ${basedir}/src/main/resources
- ํ ์คํธ ์ฝ๋ (Tests) → ${basedir}/src/main/test
- Distributable JAR → ${basedir}/target
- ์ปดํ์ผ๋ ๋ฐ์ดํธ ์ฝ๋ → ${basedir}/target/classes
pom.xml - ์์กด๊ด๊ณ (๋ผ์ด๋ธ๋ฌ๋ฆฌ) ์ค์
- 1 ํ๋ก์ ํธ → 1 pom.xml
- ํ์ ํ๋ 3๊ฐ์ง
- groupId : ํ๋ก์ ํธ ๊ณ ์ ๋๋ฉ์ธ (net.developia)
- artifactId : ํ๋ก์ ํธ ๋ช (xcimvc)
- version : ํ๋ก์ ํธ ๋ฒ์
- dependency : ํ๋ก์ ํธ ์์กด๊ด๊ณ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ
- ์ง์ญ ์ ์ฅ์
- ๋ฉ์ด๋ธ์ ๋น๋ํ ๋, ๋ค์ด๋ก๋ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฌ๊ทธ์ธ์ ๊ด๋ฆฌ
- USER_HOME/.m2/repository
- ๋ค์ด๋ก๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
- groupId์ artifactId ์๋์ ๊ฐ ๋ฒ์ ์ ๋ฐ๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ
- ์ค์ ์ ์ฅ์
- ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฉ์ด๋ธ ํ๋ฌ๊ทธ์ธ, ๋ฉ์ด๋ธ ์ํคํ์ ๊ด๋ฆฌ
- ์๊ฒฉ ์ ์ฅ์
- ๋ณ๋๋ก ์ค์นํด ์ค์ ์ ์ฅ์์ ์กด์ฌํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌ
์์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฉ ์ค์ฝํ
์์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ฉํ ์ ์๋ ์์ ์ ํ
- Scope ์ค์
- compile : ์ค์ฝํ ๋ฏธ์ค์ ์, ๊ธฐ๋ณธ ์ค์ฝํ
- provided : ์ปดํ์ผ ์ ์ง์ ์์กด์ฑ์ ์ฐธ์กฐ, ๋ฐํ์ ์ ๋ค๋ฅธ ํ๊ฒฝ์์ ์์กด์ฑ ์ ๊ณต (ํด๋น ์ปจํ ์ด๋์ ์๋ธ๋ฆฟ API)
- runtime : ์ปดํ์ผ ์ ์ฌ์ฉํ์ง ์๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ์ฐ๋ง ์ค์
- test : ํ ์คํธ ์์ ์๋ง ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ฝํ ์ค์ ์ ์ฌ์ฉ (JUnit)
- system : provided์ ๊ฐ์ง๋ง, ์ง์ jar ํ์ผ์ ์ ๊ณตํด์ผ ํจ
- import : ๋ค๋ฅธ POM์ค์ ํ์ผ์ ์ ์๋ ์์กด ๊ด๊ณ ์ค์ ์ ํ์ฌ ํ๋ก์ ํธ๋ก ๊ฐ์ ธ์ด
2. ๋ฉ์ด๋ธ์ ๋น๋ ์๋ํ ๊ธฐ๋ฅ
๊ณตํต ์ธํฐํ์ด์ค ์ ๊ณต ํ๋ ์์ํฌ
- ๋น๋ ๋ผ์ดํ ์ฌ์ดํด : ๋น๋ ๋จ๊ณ (์ปดํ์ผ, ํ
์คํธ, ํจํค์ง, ๋ฐฐํฌ)
- ํ๋ ์ด์์ ๊ณจ์ ์ํํ๋ ํ์ด์ฆ๋ค๋ก ๊ตฌ์ฑ
- ๊ฐ ํ์ด์ฆ ๋ณ๋ก ํ๋ฌ๊ทธ์ธ์ด ์์ ์ ์ํ
- ๊ฐ ํ์ด์ฆ
- ๋ฆฌ์์ค ์ค๋น
- ์ปดํ์ผ
- ํ ์คํธ (JUnit)
- ํจํค์ง
- ์ค์น
- ๋ฐฐํฌ
- ๊ณจ : ๊ฐ ๋น๋ ๋จ๊ณ์์ ์ํ๋๋ ์์
- ํ๋ฌ๊ทธ์ธ : ์ค์ ๊ณจ์ ์คํ
- ๋๋ถ๋ถ์ ๊ธฐ๋ฅ๋ค์ ํ๋ฌ๊ทธ์ธ์ ํตํด ์ ๊ณต
- ํ๋ฌ๊ทธ์ธ ์ข
๋ฅ
- clean
- compiler
- surefire
- jar
- war
- javadoc
- antrun
728x90
๋ฐ์ํ