[Spring] 기본세팅(Maven / pom.xml)

우선 이클립스에서 자바프로젝트를 메이븐 프로젝트로 변환시키는 방법입니다.
Maven은 빌드 /배포 관리툴입니다.

1. 자바 프로젝트를 만들어주세요

2. 프로젝트 이름을 짓고 Next를 눌러주세요!

3. module-info는 만들지 않을예정입니다. 체크를 해제하고 Finish를 눌러주세요

4. 생성된 프로젝트를 우클릭해서 Configure - Convert to Maven Project를 눌러주세요

5. Finish를 눌러주세요

5-1. Create new POM
Maven을 만들때 이와 같은 창이 뜰겁니다.(프로젝트 이름은 임시로 쓴겁니다!)
만약 삼성에서 갤럭시 시리즈중 zfilp을 예로 들어봅시다.
samsung.galaxy.zfilp이 되겠죠?
그러면 samsung.galaxy까지가 Group Id가 될것이고 zfilp이 Artifact Id가 됩니다.
samsung사에서 galaxy팀이 zfilp이라는 프로젝트를 하고 있다고 보면 될거같습니다.
spring-core의 경우 org.springframework.spring-core의경우에는 org.springframework까지가 Group Id이고 spring-core가 Artifact Id가 됩니다.
Version은 말그대로 프로젝트 하는 버전을 말합니다.
기본적으로는 0.0.1-SNAPSHOT버전으로 잡히게 되는데 버전 업데이트 할때마다 임의로 넘어갈수 있습니다.
Packaging은 나중에 배포할때 jar파일로 배포하겠다고 설정해준 것입니다.
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- MAVEN version --><!-- maven : 빌드/배포 관리 툴 -->
<modelVersion>4.0.0</modelVersion>
<!-- project name -->
<groupId>Spring02_Bean</groupId>
<artifactId>Spring02_Bean</artifactId>
<!-- project version -->
<version>0.0.1-SNAPSHOT</version>
<!-- maven build 설정 -->
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
</plugins>
</build>
<!-- jar 관리 -->
<dependencies>
<!-- spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.5</version>
</dependency>
<!-- spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
</dependencies>
</project>

6. 프로젝트의 형태가 약간 바뀌면서 pom.xml파일이 생깁니다!
스프링을 사용하기 위해서는 pom.xml에 dependencies를 추가해주어야 합니다!
해당 코드는 다음과 같습니다.
<dependencies>
<!-- spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.5</version>
</dependency>
<!-- spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
</dependencies>
그러고 나서 프로젝트의 Maven Dependencies를 눌러보면 spring-core와 spring-context등의 jar파일이 생긴걸 볼수 있습니다!

자 그러면 아주 기본 세팅이 완료되었습니다!

pom.xml 좌측 하단에 Overview 태그로 가보면 pom.xml에 대한 설정이 코드가 아닌 화면으로 볼수 있습니다.

그리고 Dependencies 탭으로 넘어가게 되면 방금 추가 해 놓았던 디펜던시가 있습니다.
여기에서 Add눌러서 추가해도 되지만 인터넷에서 찾아오는 방법도 있습니다!

그 다음 Dependency Hierarchy로 가게되면 어떤 jar들이 들어가 있는지 볼수 있다.
spring-core에는 spring-jcl이 들어있고 spring-context에는 spring-aop, spring-beans, spring-core, spring-expression이 들어있네요.

만약 오른쪽에 있는 spring-beans를 누르게 되면 spring-beans의 위치를 알려주고 다른 파일을 클릭하면 해당 파일의 위치를 알려줍니다.
즉 다른 디펜던시에 같은 파일이 들어있기때문에 버전을 맞춰주지 않으면 충돌이 발생합니다!(버전의 중요성)
버전 맞추는거 매우매우 중요합니다!!

Effective POM은 그 안에서 어떻게 해당 파일들이 들어가져있고 어디서 어떻게 끌어 오는지, 어디에 저장되는지 등의 내용이 저장되어있습니다.
(지금 보기는 조금 어려울 거같죠?...)
지금은 그냥 dependency에 작성을 해주면 여기서 어떻게 동작하는지 알려주는구나 라고 생각하시면 될것같습니다.
이 모든걸 Maven이 해주고 있습니다.

C드라이브 - 사용자 - 계정 으로 들어오면 .m2 폴더가 있습니다. (맥의 경우는 숨김파일로 있을수 있다고 합니다)

.m2로 들어오면 repository폴더가 있습니다.

repository로 들어가보게 되면 다운받지 않았던것들이 모두 자동으로 다운받아져 있습니다! (신기하죠??)
저같은경우는 스프링으로 프로젝트파일을 많이 만들어서 여러가지를 했기때문에 파일이 많습니다.