Maven
- Maven 레파지토리(https://mvnrepository.com/)에 각종
jar
파일을 보관하고 있다.
- pom.xml 파일에 등록된
<dependency>
태그에 의해서 jar
파일이 자동으로 다운로드 된다.
- pom.xml 파일을 수정하면 다운로드로 연결되므로 자주 저장하지 않는 것이 좋다.
- 다운로드 받은
jar
파일들은 C:\Users\사용자\.m2\repository
디렉터리에 저장된다.
jar 파일에 문제가 발생한 경우
- STS를 끈다.
C:\Users\사용자\.m2\repository
디렉터리를 지운다.
- 다시 STS를 켠다.
- 새로 다운로드 될 때까지 기다린다.
프로젝트 우클릭 - [Maven] - [Update Project]
빌드 툴
- 빌드
- 소스코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정이다.
- 최종적으로 프로젝트를 하나의 툴로 만들어내는 것을 의미한다.
- 프로젝트를 배포할 수 잇게
war
파일로 만든다.
WAR
.war
(Web application ARchive, 웹 애플리케이션 저장소)
- 웹 애플리케이션을 이루는 자원들을 압축한 파일이다.
(배포할때 사용)
주요 빌드 툴
- 메이븐(Maven)
- 그래들(Gradle)
Maven 프로젝트 특징
- 각종 라이브러리(다양한
.jar
)를 파일 하나가 대신 해주는 기능이 있다.
(알아서 jar
파일을 갖고 온다.)
jar
파일을 준비하는 대신 파일 준비를 한다. (pom.xml
)
pom.xml
: xml
이라 태그 형태로 존재한다. (제공되는 태그 사용)
Maven Project 구조
- src/main/java
- src/main/resources
- src/test/java
- src/test/resources
- src/main/webapp
- 구조 확인
Maven Project 파일 배치
파일 | 설명 |
---|
src/main/java | 자바 소스 파일 |
src/main/resources | 리소스 파일(프로퍼티, XML 등) |
src/test/java | 자바 테스트 코드(단위 테스트, 통합 테스트) |
src/test/resources | 자바 테스트 과정에 필요한 리소스 파일 |
src/main/webapp | 웹 애플리케이션 관련 파일 (resources 디렉터리(HTML/CSS/JS 등), WEB-INF 디렉터리(JSP 등) |
pom.xml
- 메이븐 프로젝트 정보 : 프로젝트 이름, 개발자 목록, 라이선스 정보 등
- 빌드 설정 : 빌드 툴, 소스/리소스, 플러그인 등
- 빌드 환경 : 사용자의 환경마다 달라질 수 있는 프로파일 정보
- POM 연관 정보 : 의존 프로젝트, 상위 프로젝트, 하위 모듈 등
pom.xml 주요 태그
태그 | 설명 |
---|
<groupId> | 프로젝트 그룹 Id |
<artifactId> | 프로젝트 아티팩트 Id (컨텍스트) |
<name> | 프로젝트 이름 |
<packaging> | 패키징 타입 (war, jar) |
<properties> | 버전 및 속성 관리 |
<dependencies> | 프로젝트가 참조하는 의존 프로젝트들 |
<dependency> | 개별 의존 프로젝트 |
<build> | 빌드에서 사용할 플러그인 |
top level package, artifactId는 contextPath가 된다.
<groupId>com.gdu</groupId>
<artifactId>app01</artifactId>
프로젝트 이름
<name>01_IoC</name>
deploy(배포) file
<packaging>war</packaging>
프로젝트 버전
<version>1.0.0-BUILD-SNAPSHOT</version>
pom.xml 최신화 작업
Property
- 속성의 버전에 따른
디펜던시
(jar
)를 다운로드 받는다.
- springframework 버전 : 2021년 01월 버전
org.aspectj, org.slf4j
버전 : springframework 버전과 맞추거나 이전 버전을 사용
작성된 버전 사용방법 | ⇒ | 변경 후 |
---|
${java-version} | ⇒ | 11으로 변경된다. |
${org.springframework-version} | ⇒ | 5.3.3으로 변경된다. |
${org.aspectj-version} | ⇒ | 1.9.6으로 변경된다. |
${org.slf4j-version} | ⇒ | 1.7.30으로 변경된다. |
<properties>
<java-version>11</java-version>
<org.springframework-version>5.3.3</org.springframework-version>
<org.aspectj-version>1.9.6</org.aspectj-version>
<org.slf4j-version>1.7.30</org.slf4j-version>
</properties>
Servlet
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
Test
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
- maven-compiler-plugin 에서 java-version 수정
<source>${java-version}</source>
<target>${java-version}</target>
저장 후 프로젝트 업데이트 하기
프로젝트 우클릭 - [Maven] - [Update Project]
✍️ 디펜던시는 손으로 작성하지 않는다. 필요한 디펜던시는 Maven Repository 사이트에서 검색 - 복사 - 붙여넣기
한다.⭐
👉pom.xml변경 예시(깃허브 클릭)