ํ์ฌ ์๊ฐ
1C์์๋ ํ๋ซํผ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐํฉ๋๋ค. ์ ะธ , Java ์ ํ๋ฆฌ์ผ์ด์ , ํนํ ์๋ก์ด ๊ฐ๋ฐ ํ๊ฒฝ Eclipse ๊ธฐ๋ฐ ๋ฐ ํ๋ซํผ๊ณผ ๊ธด๋ฐํ๊ฒ ํตํฉ๋ ๋ฉ์ ์ ์๋ฒ - .
๊ธฐ์
์ฐ๋ฆฌ๋ Java ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ ์์คํ
์ผ๋ก Maven์ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํฉ๋๋ค. ์ด ์งง์ ๊ธฐ์ฌ์์๋ ๊ฐ๋ฐ์ ๊ตฌ์ฑํ๋ ๊ณผ์ ์์ ์ง๋ฉดํด์ผ ํ๋ ๋ฌธ์ ์ค ํ๋์ ์ด๋ฅผ ๊ทน๋ณตํ ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ๋ฌธ์ .
ํ์ ๊ตฌ์ฑ ์์ ๋ฐ ์ํฌํ๋ก
Maven ํ๋ก์ ํธ์ ๊ฐ๋ฐ ํน์ฑ์ผ๋ก ์ธํด ์ฐ๋ฆฌ๋ ๊ฝค ๋ง์ ๋ชจ๋, ์ข ์์ฑ ๋ฐ ํ์ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ ํธ๋ฆฌ์ pom ํ์ผ ์๋ ์์ญ ๋๋ ์๋ฐฑ ๊ฐ๊ฐ ๋ ์ ์์ต๋๋ค.

๊ทธ๊ฒ์ ๋ณ๊ฒ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ๊ฒ์
๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ํ ๋ฒ ๋ง๋ค๊ณ ์์ด ๋ฒ๋ ธ์ต๋๋ค. ํ ๋ฒ์ ๋ชจ๋ ํ์ผ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ํธ์ง๊ธฐ์ IDE์ ํธ๋ฆฌํ ๋๊ตฌ๊ฐ ๋ง์ด ์์ต๋๋ค. pom.xml์ ๋ํ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ๊ธฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌด์์
๋๊น? ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ ๋ฒ์ ๋ฐ ์ข
์์ฑ์ด ๋ณ๊ฒฝ๋์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ์๋ง๋ ๋๊ตฐ๊ฐ๋ ์ด๊ฒ์ ๋ํด ๋
ผ์ํ๊ณ ์ถ์ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ์ ์ํฉ์
๋๋ค. ๊ทธ ์ด์ ๋ ์ปค๋๊ณผ ํจ๊ป ๋ง์ ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์์ ๊ฐ๋ฐํ๊ณ ์์ผ๋ฉฐ ๋น๋ ๋ฐ ํ
์คํธ ๊ฒฐ๊ณผ์ ์ง์์ ์ธ ์ฌํ์ฑ์ ์ํด ์ค๋
์ท์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ ์ ๊ทผ ๋ฐฉ์์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ๊ฐ ๋น๋๋ง๋ค ํ๋ก์ ํธ์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋์ฌ์ผ ํฉ๋๋ค.
๋ํ ๋๋๋ก ๊ฐ๋ฐ์๋ ์์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๊ธฐ๋ฅผ ๊ตฌ์ถํ๊ณ ๋ชจ๋ ์ข ์์ฑ์ ๋ํด ํด๋น ๊ธฐ๋ฅ์ ํ์ธํด์ผ ํ๋ฉฐ, ์ด ๊ฒฝ์ฐ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ์ ์๋์ผ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ด๊ธฐ ์๋ฃจ์
์ด์ฒ๋ผ ๋น๋ฒํ๊ณ ๋ค์ํ ๋ฒ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด CI ๋ด ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ์๋ํํ๊ณ ์ถ์ต๋๋ค. ํธ๋ฆฌํ๊ณ ์ ์๋ ค์ง ํ๋ฌ๊ทธ์ธ์ด ๊ตฌ์ถ๋๋ ๊ณณ์ ๋๋ค. ๋ฒ์ -maven-ํ๋ฌ๊ทธ์ธ - ์ฐ๊ฒฐํ๊ณ ์คํํ์ธ์
mvn -N ๋ฒ์ :set -DnewVersion=2.0.1
๊ทธ๋ฆฌ๊ณ Maven์ ํ์ํ ๋๋ก ๋ชจ๋ ์์ ์ ์ํํฉ๋๋ค. ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์์์ ์๋๋ก ์คํํ์ฌ ๋ชจ๋ ๋ฒ์ ์ ๋์ฒดํฉ๋๋ค. ์ด์ ๋จ์ ๊ฒ์ ๋์ด์ค๊ธฐ ์์ฒญ์ ์ ์ถํ๋ ๊ฒ๋ฟ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋๋ฃ๋ค์ด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ณ ์ ์ํ๊ฒ ํธ๋ ํฌ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค. ๋น ๋ฅด๊ฒ? ๊ทธ๊ฒ์ด ์ด๋ป๋ ์๊ด ์์ต๋๋ค. ์ด๋ฐฑ pom.xml ๊ฒํ ์ฉ์ด๋ฉฐ ์ด๋ ์ฝ๋๋ฅผ ๊ณ์ฐํ์ง ์์ต๋๋ค. ๋ํ ์ด๋ ๊ฒ ๋ง์ ๋ณ๊ฒฝ๋ ํ์ผ๋ก ์ธํ ๋ณํฉ ์ถฉ๋๋ก๋ถํฐ ๋๊ตฌ๋ ์์ ํ์ง ์์ต๋๋ค. CI ํ๋ก์ธ์ค์์ ๋ฒ์ ๋ณ๊ฒฝ์ ๊ธฐ๋ฅ ๋ณ๊ฒฝ๊ณผ ํจ๊ป ์๋์ผ๋ก ๋ฐ์ํ๋ฉฐ ๋ณ๋๋ก ๋ฐ์ํ์ง ์๋๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ
ํ๋์ ์ฐ๋ฆฌ๋ ์ง์ ํ๊ณ ์ฌ์ํ๊ณ ๊ทธ ์ฌ๋๋ค์ด ๋์ฌ ๋๊น์ง ๊ทธ๋ ๊ฒ ์ด์์ต๋๋ค. ๋ฒ์ 3.5.0-beta-1๋ถํฐ Maven์๋ ์์ "์๋ฆฌ ํ์์"์ ๋ํ ์ง์์ด ํฌํจ๋์ง ์์์ต๋๋ค. ์ด ๋์ฒดํ์ ํต์ฌ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. pom.xml ํ๋ก์ ํธ ๋ฒ์ ์ ๊ตฌ์ฒด์ ์ผ๋ก ํ์ํ๋ ๋์ ๋ณ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ${๊ฐ์ }, ${sha1} ะธ ${๋ณ๊ฒฝ ๋ชฉ๋ก}. ์ด๋ฌํ ์์ฑ ์์ฒด์ ๊ฐ์ ์์์์ ์ค์ ๋ฉ๋๋ค.์์ฑ> ๋๋ ์์คํ ์์ฑ์ ํตํด ์ ์ํ ์ ์์ต๋๋ค.
mvn -Drevision=2.0.0 ํด๋ฆฐ ํจํค์ง
์์คํ ์์ฑ ๊ฐ์ ๋ค์์ ์ ์๋ ๊ฐ๋ณด๋ค ์ฐ์ ํฉ๋๋ค.์์ฑ>.
๋ถ๋ชจ์
4.0.0
org.apache
์ํ์น
18
org.apache.maven.ci
์น๋ถ๋ชจ
์ฒซ ๋ฒ์งธ CI ์นํ์
${๊ฐ์ }${sha1}${๋ณ๊ฒฝ ๋ชฉ๋ก}
...
1.3.1
-์ค๋
์ฌ์ง
ํ์
4.0.0
org.apache.maven.ci
์น๋ถ๋ชจ
${๊ฐ์ }${sha1}${๋ณ๊ฒฝ ๋ชฉ๋ก}
org.apache.maven.ci
ci-child
...
๋ฒ์ 2.0.0-SNAPSHOT์ ๋น๋ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ธ์.
mvn -Drevision=2.0.0 ํด๋ฆฐ ํจํค์ง
์ถ์ํ๊ณ ์ถ๋ค๋ฉด SNAPSHOT์ ์ฌ์ค์ ํ์ธ์.
mvn -Dchangelist= ํจํค์ง ์ ๋ฆฌ
*์์ ์์๋ ๋ค์์์ ๋ฐ์ทํ ๊ฒ์ ๋๋ค. Maven Apache Project ์น์ฌ์ดํธ
๊ฐํนํ ํ์ค
๋ชจ๋ ๊ฒ์ด ์ข๊ณ ๊ฑด๊ฐํ๋ฉฐ ์ด์ ๋ง์กฑ๊ฐ์ ๋๋ ๋์ด์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ ์ฅ์์ ๊ฒ์๋ ์ํฐํฉํธ ์ค๋ช ์์ ๋์ฒด๋์ง ์์ผ๋ฏ๋ก ์ค์น ๋ฐ ๋ฐฐํฌ์๋ ์๋ํ์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ${๊ฐ์ } ๊ทธ ์๋ฏธ์ ๋ํด ์์๋ณด๋ฉด ๋ฉ์ด๋ธ์ ๋ ์ด์ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
org.apache
์ํ์น
${๊ฐ์ }
ํฐ๋ ๋์ ๋น
์ฐ๋ฆฌ๋ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ผ ํฉ๋๋ค. ์ํฉ์ ์ด๋ฆด ์๋ ์์์ ํ ๋ฐ . ์ด ํ๋ฌ๊ทธ์ธ์ pom์ ๋ชจ๋ ๋ณ์๋ฅผ ํ์ธํ์ง๋ง ๋์์ ์ด์ ๋ธ๋ฆฌ ์ค์๋ง ํ์ํ๊ณ ๊ฒ์๋ ์ํฐํฉํธ๋ฅผ ๋ค๋ฅธ ํ๋ก์ ํธ๋ก ๊ฐ์ ธ์ฌ ๋๋ ํ์ํ์ง ์์ ๋ง์ ์ ๋ณด๋ฅผ ์๋ผ๋ ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ํ ๋ชจ๋ ๋ถ๋ชจ-์์ ์ข ์์ฑ์ "์ ๋ฆฌ"ํ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ํ๋ซ ํผ์ ์ป์ ์ ์์ต๋๋ค. ๋ถํธํ ์ ์ "์ถ๊ฐ"๋ฅผ ๋๋ฌด ๋ง์ด ์๋ผ๋ด๋ ๊ฒ์ธ๋ฐ, ์ด๋ ์ฐ๋ฆฌ์๊ฒ ์ ํ ์ ํฉํ์ง ์์์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ฐ๊ตฌํ ๊ฒฐ๊ณผ, ์ฐ์ฃผ์ ์ฐ๋ฆฌ๊ฐ ์ ์ผํ ๊ฒ์ด ์๋๋ผ๋ ์ฌ์ค์ด ๋ฐํ์ก์ผ๋ฉฐ, ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ ๋ชฉ์ ์ผ๋ก 2018๋ 1.1.0์ Github์ ํ๋ฌ๊ทธ์ธ ์ ์ฅ์์ ํ ์์ฒญ์ด ์์ฑ๋์์ต๋๋ค. pom.xml์ "ํผ์"ํ๋ ๋ฐฉ๋ฒ์ ์ค์ค๋ก ๊ฒฐ์ ํฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ๊ณ ํต๋ฐ๋ ์ฌ๋๋ค์ ๋ชฉ์๋ฆฌ์ ๊ท๋ฅผ ๊ธฐ์ธ์๊ณ , ์ด๋ฏธ XNUMX์ ์ ๋ฒ์ XNUMX์ ์ถ์์ ํจ๊ป ์๋ก์ด ๋ชจ๋์ธsolveCiFriendliesOnly๊ฐ flatten-maven-plugin์ ๋ฑ์ฅํ๋๋ฐ, ์ด๋ ๊ทธ ์ด๋ ๋๋ณด๋ค ์ ํฉํ์ต๋๋ค. pom.xml ์์๋ฅผ ์ ์ธํ๊ณ ์๋ ๊ทธ๋๋ก ๊ทธ๋ฆฌ๊ณ ํ์ฉ ${๊ฐ์ }, ${sha1} ะธ ${๋ณ๊ฒฝ ๋ชฉ๋ก}.
ํ๋ก์ ํธ์ ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ
org.codehaus.mojo
flatten-maven-ํ๋ฌ๊ทธ์ธ
1.1.0
์ง์ค
ํด๊ฒฐCiFriendlies๋ง
๋จ์กฐ๋กญ๊ฒ ํ๋ค
ํ๋ก์ธ์ค ๋ฆฌ์์ค
๋จ์กฐ๋กญ๊ฒ ํ๋ค
ํํํ๊ฒ ํ๋ค.์ฒญ์ํ๋ค
๊นจ๋ํ
๊นจ๋ํ
์๋ฃ!
ํ๋ณตํ ๊ฒฐ๋ง
์ด์ ๋ถํฐ ์ ์ฒด ํ๋ก์ ํธ์ ๋ฒ์ ์ ๋ณ๊ฒฝํ๊ณ ๋ชจ๋ ์ข
์์ฑ์ ์ด๋ฅผ ์๋ฆฌ๋ ค๋ฉด ์์๋ฅผ ํธ์งํ๋ฉด ๋ฉ๋๋ค.๊ฐ์ > ๋ฃจํธ์๋ง ์์ pom.xml. ๋์ผํ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ํ์ผ ์ค ๋ฐฑ๋ ๊ฐ๊ฐ ์๋ ํ๋๊ฐ ๊ฒํ ์ ๋์ฐฉํฉ๋๋ค. ๋ญ, ์ธ ํ์๋ ์์ง ๋ฒ์ -maven-ํ๋ฌ๊ทธ์ธ.
์ถ์ฒ : habr.com
