Maven : 빌드하는 도구중 하나 (자바프로젝트를 빌드해주는 서버에서 돌아갈 수 있도록 빌드해주는 도구중 하나)
Maven의 핵심기능 : 필요한 라이브러리를 네트워크를 통해서 자동으로 다운받아주는 기능
Maven Repository라는 저장소 존재 합니다
→ 라이브러리 개발자들이 미리 등록해놓으면 pom.xml이그것을 찾아 프로젝트에 포함시켜줍니다.
설정 코드를 통해 바로 다운받을수 있도록 빌드도구 메이븐을 사용합니다
1. 구글검색창에 MavenRepository 검색
2. mvnrepository.com
3. 검색창에 spring-context 검색(스프링의 핵심모듈)
Maven Project를 생성해 보도록 하겠습니다.
file-new-create a Maven Project
Create a simple project 선택
→ 체크박스에 체크를 하시면 몇가지 귀찬은 설정들을 이클립스가 건너 뛰어줍니다
[group id]: 프로젝트가 혼자서 진행할수도 있지만 대부분이 팀으로 진행합니다
너희 팀이 무엇인지 알려줘, 우리 팀을 식별할 수 있는게 id입니다.
id라고 함은 기본적으로 중복이 되면 안됩니다. 그래서 보통 groupId는 도메인역순 즉, 도메인주소를 거꾸로작성합니다. 도메인 주소라는것은 중복이 없기 때문입니다.
우리가 만약 Spring.com을 운영하고있다면 com.spring으로입력해줍니다.
[Artifact id]: 프로젝트를 유일하게 식별할 수 있게해줍니다.
프로젝트를 식별할 수 있게 해주는 아이디이며 프로젝트의 이름이 됩니다.
예) 우리가 요기요면 요기요,우리가 배민이면 배민
Basic이라고 지정해 준 후 [Finish]버튼을 클릭합니다.
좌측에 Basic이라는 프로젝트가 생성됨과 동시에
Maven프로젝트에서 Maven의 폴더구조를 알아보겠습니다
[src/main/java]
- 자바의 클래스,인터페이스 파일들을 저장하는 공간입니다.
[src/main/resources]
- 스프링에 대한 설정파일 xml파일들을 저장하는 공간입니다.
ㄴ메이븐프로젝트는 스프링설정을 전부 다 xml파일로 설정합니다
- xml파일들이 들어갈 공간이다 라고 쉽게 기억을 하시면 좋습니다.
- DB정보를 담고있는 프로퍼티 파일들, 자바이외의 설정파일들이 들어가는 공간이기도 합니다.
[src/test/java]
- test를 수행할 수 있는 곳 → 예를들어 단위테스트...
[JRE System Library]
- 자바 표준라이브러리, 스트링객체,Arrays,List,Map,System,Object
[src폴더]
- static한 파일들 예를들어 img,html,css,javascript파일들을 저장하는 폴더입니다.
[pom.xml]
- 메이븐의 핵심파일입니다.
- 라이브러리 다운을위한 웹에서 내려받기위한 설정들을 이파일에서 진행하게 됩니다.
POM은 "Project Object Model"의 약자로, 프로젝트의 다양한 정보를 처리하기 위한 객체 모델입니다.
pom.xml에는프로젝트 설정을 XML 태그로 기술하고 있습니다.
pom.xml 코드 구성
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
프로젝트를 처음 만들었을 때 pom.xml파일에 선언되있는 태그와 속성들입니다.
아래에서 차근차근 간단하게 분석해보도록 하겠습니다.
<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">
</project>
pom.xml은<project>라는 루트 태그 내에 모든 정보를 기술하게 됩니다.
이 <project> 태그는 xmlns / xmlns:xsi / sxi : schemaLocation 세세한 것들이 속성으로 여러 붙어 있는데,
이들은 모두 정해진 값이므로, 복사해서 쓰면 된다고 생각하면 됩니다.
필요에 따라 수정할 부분은 없습니다.
이 후에는 필요한 정보를 태그로 기술해 나갈뿐입니다.
좀 더 불필요한 것을 모두 제거하고 나면 기본 코드는 다음과 같습니다.
<modelVersion>4.0.0</modelVersion> //POM모델 버전입니다. 이것은 4.0.0이라고 설정합니다.
<groupId>com.spring</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>
POM모델 버전입니다. 이것은 4.0.0이라고 설정합니다.
<groupId>com.spring</groupId>
프로젝트를 만들 때 입력했던 그룹ID입니다. 제작자와 회사, 단체 등을 식별하기 위해 쓰입니다.
<artifactId>basic</artifactId>
프로젝트를 생성할 때 입력했던 ArtifactId입니다. 프로젝트에 할당한 고유 ID이며 프로젝트 명이기도 합니다.
<version>0.0.1-SNAPSHOT</version>
프로그램 버전입니다. 기본적으로 1.0-SNAPSHOT이 설정되어 있습니다.
이렇게 기본적으로 프로젝트를 생성할 때 입력하거나 설정했던 속성값들이 pom.xml에 등록됩니다.
pom.xml을 통한 Spring의 핵심모듈 및 라이브러리 다운진행해 보도록 하겠습니다
pom.xml에 의존 라이브러리를 다운 받을 때에는 꼭 <dependencies> </dependencies>태그를 선언해준 후
그 안에 다운받을 의존 라이브러리 코드를 작성해줘야 합니다
의존 라이브러리를 한곳에 모아 기술하기 위한 것 입니다.
각각의 의존 라이브러리 정보는 <dependency> 태그를 사용하여 작성합니다.
이 <dependency> 태그를 필요한만 큼 <dependencies> 태그 안에 기술합니다.
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- 의존 라이브러리 -->
</dependencies>
</project>
의존 라이브러리 등록을 위한<dependencies></dependencies> 태그 작성
Spring의 핵심모듈 다운을위해 코드를 작성합니다
mvnrepositrory.com에서 spring-context 검색 후 가장 많이 사용되는것으로 클릭후 접속합니다.
jre 버전 및 메이븐 컴파일러 버전 설정 소스를 복사후 pom.xml에붙여넣기합니다.
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<!-- Spring Context 모듈 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
</dependencies>
</project>
spring-context 설정 모듈 등록
다음으로는 메이븐 컴파일러 버전을 설정하는 코드를 작성해 보도록 합니다
매이븐도 도구중의 하나이고 어떻게보면 자바소스자바라이브러리 중의 하나입니다
메이븐을 컴파일할때 어떤 자바버전을 사용할것인가 컴파일러에대한 버전설정을 해줍니다.
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
</dependencies>
<!--메이븐 컴파일러와 자바 라이브러리 버전 설정-->
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version> <!-- 메이븐의 버전을 3.5.1을 사용하겠다. -->
<configuration>
<source>1.8</source>
<target>1.8</target> <!-- 자바의 컴파일러를 1.8버전을 사용하겠다. -->
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
메이븐 컴파일러 붙여넣기 후 저장
정상적으로 업데이트가 된다면 우선적으로 JRE System Library가 해당 버전으로 변경됩니다.
Maven Dependencies 추가된것을 확인할수 있다
이곳에는 스프링의 핵심모듈들이 jar파일로 설치된것을 확인할 수 있습니다.
'SpringFramework > BASIC' 카테고리의 다른 글
자동 스캔 명령태그 / 자동 의존성 주입 어노테이션 context:annotation-config @Autowired/@Qulifier/@Resource/@Inject (0) | 2020.08.29 |
---|---|
싱글톤타입/프로토타입 Bean객체의 범위 (0) | 2020.08.29 |
DI 의존성 주입 - Setter() (0) | 2020.08.29 |
DI 의존성 주입 - 생성자 (0) | 2020.08.29 |
스프링 프레임워크의 기본 개념 정리 (1) | 2020.08.28 |