Maven ์ด๋, build tool!
Build tool
์ ์ข
๋ฅ๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ๊ทธ ์ค 2๊ฐ์ง๊ฐ ์ฃผ๋ก ์ฐ์ธ๋ค.
Build ๋ ์ฐ๋ฆฌ๊ฐ ์์ฑํ source code ๋ฅผ ์คํดํ ์ ์๋ ๋ ๋ฆฝ์ ์ธ ํํ๋ ๋ฐํํ๋ ๊ณผ์ + ๊ทธ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์๋ฏธํ๋๋ฐ ๋ ์ ํํ ์๋ฏธ๋ก๋ ๊ทธ ๋ฐํํ๋ ๊ณผ์ ์์ฒด๋ฅผ ๊ฐ๋ฅดํจ๋ค.
๋ฐ๋ผ์ Build Tool ์ด๋, ์ด๋ฌํ build ๊ณผ์ ์ ์์ํ๊ฒ ์ด๋ฃจ์ด์ง ์ ์๋๋ก ๋์์ฃผ๋ tool ์ ์๋ฏธํ๋ค.
=> ์ด๋ฌํ Buil ๊ณผ์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ tool ๋ค์ด build tool
์ด๋ค.
Maven์( ์ ํํ๋ build tool์ ) ํน์ IDE( ์ดํด๋ฆฝ์ค, ์ธํ
๋ฆฌ์ ์ด ๋ฑ๋ฑ ) ์ ์ข
์๋์ง ์๋๋ค.
GroupId
groupId ๋, ๋ง๋๋ ํ๋ก์ ํธ์ ๋ํด์ ๋ค๋ฅธ ํ๋ก์ ํธ ์ฌ์ด์์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋๋ก ์๋ณ์ ์ญํ ์ ํ๋ ID ๋ฅผ ์ง์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ฐ๋ผ์ groupId ์๋ ๋ค์ด๋ฐ ์คํค๋ง๊ฐ ์ ์ฉ๋๋๋ก ํ๋ค.
groupId ๋ ํจํค์ง ๋ช ๋ช ๊ท์น์ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ด ์ข๋ค.
ํ์ ๊ทธ๋ฃน์ ์ถ๊ฐ๋ ์ ์๋ค.
ex) org.apache.maven
, org.apache.commons
ArtifactId
artifactId ๋ ๋ฒ์ ์ ๋ณด๋ฅผ ์๋ตํ, jar ํ์ผ์ ์ด๋ฆ์ด๋ค.
Version
์ซ์์ ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์ผ๋ฐ์ ์ธ ๋ฒ์ ํํ๋ฅผ ์ฌ์ฉํ๋ค(1.0
,ย 1.1
,ย 1.0.1
, โฆ).
SNAPSHOT(nightly) ๋น๋ ๋ ์ง๋ฅผ ๋ฒ์ ์ผ๋ก ์ฌ์ฉํ์ง ์๋๋ก ํ๋ค.
์จ๋ ํํฐ ์ํฐํฉํธ๋ผ๋ฉด, (์ข ์ด์ํ๊ฒ ๋ณด์ผ ์ ์์ด๋) ๊ทธ๋ค์ ๋ฒ์ ๋๋ฒ๋ฅผ ์ด์ด๋ฐ์ ์ฌ์ฉํ๋๋ก ํ๋ค.
๐ Terminal ์ ์ด์ฉํ Maven ํ๋ก์ ํธ ์์ฑ ๋ฐ ์คํ, ๋ฐฐํฌ ๊ณผ์
mvn archetype:generate -DgroupId=com.test -DartifactId=myProject -DarchetypeArtifactId=maven-archetype-quickstart
๋ง์ฝ ์ด์ ์ compile ๊ณผ์ ๋ฑ์ ๊ฑฐ์น์ง ์์๋๋ผ๋ฉด, mvn pakage
๋ฅผ ์
๋ ฅํ์ ๋ ์์์ ์ปดํ์ผ์ ์คํํ ๋ค, ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด artifactId ๋ก ์ค์ ํ ์ด๋ฆ์ผ๋ก jar ํ์ผ์ด ์์ฑ๋๋ค.
Jar ํ์ผ์ ์คํํ๊ธฐ
-cp : java๊ฐ ํด๋์ค๋ฅผ ์ฐพ๋ classPath
์ถ์ฒ : https://maven.apache.org/guides/mini/guide-naming-conventions.html