5.1 ํ”„๋กœ์ ํŠธ ๋‹จ๊ณ„ ๋ชฉ๋ก

๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋กœ์ ํŠธ ์กฐ๋ฆฝ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์€ ์กฐ๊ธˆ ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธ€์Ž„, ๋˜๋Š” ๊ฐ•๋ ฅํ•˜๊ฒŒ. Maven์€ ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ํ™•์‹ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” ๋‹จ๊ณ„๋กœ ๋‚˜๋‰˜๋ฉฐ ์•„๋ž˜ ํ‘œ์— ์„ค๋ช…์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ๋ฌธํ•˜๋‹ค ๋‹จ๊ณ„
1 ํ™•์ธ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ์ •๋ณด์˜ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
2 ์—ฎ๋‹ค ์†Œ์Šค ์ปดํŒŒ์ผ
์‚ผ ์‹œํ—˜ ์ด์ „ ๋‹จ๊ณ„์—์„œ ํด๋ž˜์Šค ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
4 ํŒจํ‚ค์ง€ ์ปดํŒŒ์ผ๋œ ํด๋ž˜์Šค๋ฅผ ์ƒˆ ์•„ํ‹ฐํŒฉํŠธ(jar, war, zip, ...)๋กœ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค.
5 ํ™•์ธํ•˜๋‹ค ์•„ํ‹ฐํŒฉํŠธ์˜ ์ •ํ™•์„ฑ๊ณผ ํ’ˆ์งˆ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ๋งŒ์กฑ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
6 ์„ค์น˜ํ•˜๋‹ค ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
7 ์ „๊ฐœํ•˜๋‹ค ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„ ๋˜๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์— ์•„ํ‹ฐํŒฉํŠธ ์—…๋กœ๋“œ

๋™์‹œ์— ๋‹จ๊ณ„๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ์ˆœ์ฐจ์ ์ž…๋‹ˆ๋‹ค . ํŒจํ‚ค์ง€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋„๋ก Maven์— ์ง€์‹œํ•˜๋ฉด ๋จผ์ € ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์›์น™์ ์œผ๋กœ ์—ฌ๊ธฐ์—๋Š” ํ’ˆ์งˆ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ๋‹จ๊ณ„(๊ฒ€์ฆ, ํ…Œ์ŠคํŠธ, ํ™•์ธ)๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋‘ ๋‹จ๊ณ„(์„ค์น˜ ๋ฐ ๋ฐฐํฌ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ • ๋‹จ๊ณ„๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด maven ๋‹จ๊ณ„ ๋ช…๋ น์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค . ์˜ˆ๋ฅผ ๋“ค์–ด ๋นŒ๋“œํ•˜๋ ค๋ฉด maven ํŒจํ‚ค์ง€ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๋“ฑ.

Intellij IDEA๋Š” ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„ ์ž‘์—…์— ํƒ์›”ํ•˜๋ฉฐ ์˜ค๋ฅธ์ชฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉ์ ์„ ์œ„ํ•œ ํŠน๋ณ„ ๋ฉ”๋‰ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ด๋ธ ๋‹จ๊ณ„

์—ฌ๊ธฐ์—์„œ ์ž˜ ์•Œ๋ ค์ง„ ๋‹จ๊ณ„ ์™ธ์—๋„ IDEA๋Š” clean ๋ฐ site ๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ช…๋ น์„ ๋” ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค . clean์€ ๋Œ€์ƒ ํด๋”๋ฅผ ์™„์ „ํžˆ ์ง€์šฐ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์‚ฌ์ดํŠธ๋Š” ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.2 ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๋ ค๋ฉด ์ปดํŒŒ์ผ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” mvn compile ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผ ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜์—ฌ IDEA ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

๊ทธ๋Ÿฐ ๋‹ค์Œ Maven์ด ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋กœ๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

๋กœ๊ทธ์—๋Š” ๋งŽ์€ ์œ ์šฉํ•œ ์ •๋ณด๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ฉฐ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ฐ์‚ฌํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

5.3 ์ž‘์—… ์ฃผ๊ธฐ

๋ชจ๋“  maven ๋ช…๋ น์€ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ผ๋Š” ์„ธ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  Maven ํ™œ๋™์ด ๋นŒ๋“œ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ ๋˜๋Š” ํŠน์ • ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ์‹คํ–‰๋˜๋Š” ๋‹จ๊ณ„์˜ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค .

์„ธ ๊ฐ€์ง€ ์ˆ˜๋ช… ์ฃผ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊นจ๋—ํ•œ;
  • ๊ธฐ๋ณธ;
  • ๋Œ€์ง€.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค ๊ฐ๊ฐ์€ ์ž์ฒด ์œ„์ƒ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ฆฐ์ด ๊ฐ€์žฅ ์งง์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์ „ ์ฒญ์†Œ;
  2. ๊นจ๋—ํ•œ;
  3. ํฌ์ŠคํŠธ ํด๋ฆฐ.

์ฒญ์†Œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ˆจ๊ฒจ์ง„ ์ถ”๊ฐ€ ์‚ฌ์ „ ์ฒญ์†Œ ๋ฐ ์‚ฌํ›„ ์ฒญ์†Œ ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋œ ์‚ฌ์ดํŠธ ์ˆ˜๋ช… ์ฃผ๊ธฐ๊ฐ€ ์˜ต๋‹ˆ๋‹ค . ๋„ค ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  1. ์‚ฌ์ „ ์‚ฌ์ดํŠธ
  2. ๋Œ€์ง€;
  3. ์‚ฌํ›„ ์‚ฌ์ดํŠธ;
  4. ์‚ฌ์ดํŠธ ๋ฐฐํฌ.

ํ‘œ์ค€ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋Š” Maven ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์œผ๋กœ ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด๊ฒƒ์€ ๋ณ„๋„์˜ ๊ฐ•์˜๊ฐ€ ํ•„์š”ํ•œ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ ์Šคํฌ๋ฆฝํŠธ์—๋Š” ๊ฐ€์žฅ ๊ธด ๋‹จ๊ณ„ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ™•์ธ;
  2. ์ƒ์„ฑ ์†Œ์Šค;
  3. ํ”„๋กœ์„ธ์Šค ์†Œ์Šค;
  4. ์ž์› ์ƒ์„ฑ;
  5. ํ”„๋กœ์„ธ์Šค ์ž์›;
  6. ์—ฎ๋‹ค;
  7. ํ”„๋กœ์„ธ์Šค ํ…Œ์ŠคํŠธ ์†Œ์Šค;
  8. ํ”„๋กœ์„ธ์Šค ํ…Œ์ŠคํŠธ ์ž์›;
  9. ํ…Œ์ŠคํŠธ ์ปดํŒŒ์ผ;
  10. ์‹œํ—˜;
  11. ํŒจํ‚ค์ง€;
  12. ์„ค์น˜ํ•˜๋‹ค;
  13. ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ๋™์ผํ•œ ๋‹จ๊ณ„๊ฐ€ ๋ชจ๋‘ ์žˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์„ ํƒ์  ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ์งธ, ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์ธ๊ธฐ ์žˆ๋Š” ๋‹จ๊ณ„๋Š” ์†Œ์Šค ์ƒ์„ฑ ์ž…๋‹ˆ๋‹ค . ์˜ˆ๋ฅผ ๋“ค์–ด XML์„ ๊ธฐ๋ฐ˜์œผ๋กœ Java ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ฝ”๋“œ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•œ ์Œ์˜ process-sources .

๋‘˜์งธ, ์ž์›์˜ ์ƒ์„ฑ์€ ์ž์› ์ƒ์„ฑ ๊ณผ ๊ทธ ์ง์„ ์ด๋ฃฌ ํ”„๋กœ์„ธ์Šค ์ž์› ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค . ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„์™€ ๊ด€๋ จ๋œ ์ผ๋ถ€ ํ™œ๋™์„ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ์œ ์—ฐํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์„ธ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์„ ํƒ์  ๋‹จ๊ณ„(ํ”„๋กœ์„ธ์Šค-ํ…Œ์ŠคํŠธ-์†Œ์Šค, ํ”„๋กœ์„ธ์Šค-ํ…Œ์ŠคํŠธ-์ž์›, ํ…Œ์ŠคํŠธ-์ปดํŒŒ์ผ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.