[Spring] Maven์˜ ์—ญํ• 

Maven

Java ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ, ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด WEB-INF/lib ํด๋”์— ๋ณต์‚ฌ ํ›„ ์„ค์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด๋Ÿฐ ๋ฐฉ์‹์€ ๋ณต์žกํ•จ์„ ์œ ๋ฐœํ•˜๋ฏ€๋กœ ์ด๋Ÿฐ ๋ฌธ์ œ์™€ ๋” ๋‚˜์€ ์ปดํŒŒ์ผ๊ณผ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด Maven์ด ๋“ฑ์žฅํ–ˆ๋‹ค.

CoC & ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

CoC๋Š” ์†Œ์Šค ํŒŒ์ผ์˜ ์œ„์น˜, ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์˜ ์œ„์น˜ ๋“ฑ์˜ ์ •ํ•ด์ง„ ๊ด€์Šต์ด๋‹ค.
Maven์€ CoC๋ฅผ ์ง€ํ‚ค๋ฉฐ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฌํ•œ ๊ด€์Šต๋“ค์„ ์ดํ•ดํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
๋‹ค์ˆ˜๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ, ๊ด€์Šต์— ๋งž์ถฐ์„œ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

  • ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
  • java์™€ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€์™€ ์†Œ์Šค์ฝ”๋“œ๋Š” src/main/java์— ์œ„์น˜
  • properties์™€ xml ๋“ฑ๊ณผ ๊ฐ™์€ ์„ค์ • ํŒŒ์ผ์€ src/main/resources์— ์œ„์น˜
  • WEB-INF์™€ ๊ฐ™์€ ์›น ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๋“ค์€ src/main/webapp์— ์œ„์น˜
  • ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จ๋œ java ํŒจํ‚ค์ง€์™€ ์†Œ์Šค์ฝ”๋“œ๋Š” src/test/java์— ์œ„์น˜
  • ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ์„ค์ • ํŒŒ์ผ๋“ค์€ src/test/resources์— ์œ„์น˜
  • ์ปดํŒŒ์ผ๊ณผ ํŒจํ‚ค์ง• ๋œ ๊ฒฐ๊ณผ๋ฌผ๋“ค์€ target์— ์œ„์น˜
  • Maven ์„ค์ • ํŒŒ์ผ์€ pom.xml

pom.xml ๊ธฐ๋ณธ๊ตฌ์„ฑ

<!-- project -> ์ตœ์ƒ์œ„ ๋ฃจํŠธ ์—˜๋ฆฌ๋จผํŠธ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- POM model์˜ ๋ฒ„์ „-->
  <modelVersion>4.0.0</modelVersion>

  <!-- ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์กฐ์ง์˜ ๊ณ ์œ  ์•„์ด๋””, ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๊ฑฐ๊พธ๋กœํ•œ๋‹ค. -->
  <groupId>kr.or.connect</groupId>
  <!-- artifact ๊ณ ์œ  ID -->
  <artifactId>mavenweb</artifactId>
  <!-- ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ๋ฒ„์ „ -->
  <version>0.0.1-SNAPSHOT</version>
  <!-- jar, war, ear ๋“ฑ์˜ ํŒจํ‚ค์ง• ํ˜•์‹ -->
  <packaging>war</packaging>

   <!-- ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„ -->
  <name>mavenweb Maven Webapp</name>
  <!-- ํ”„๋กœ์ ํŠธ ์‚ฌ์ดํŠธ ์ฃผ์†Œ -->
  <url>http://www.example.com</url>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>