π¨π»βπ»λ©μ΄λΈ(Maven)μ΄ λκΉ?
- Maven
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)μ΄λΌλ λΉλ ν΄μ΄ λ±μ₯νμλ€.