- Maven 레파지토리(https://mvnrepository.com/)에 각종
jar
파일을 보관하고 있다.- pom.xml 파일에 등록된
<dependency>
태그에 의해서jar
파일이 자동으로 다운로드 된다.- pom.xml 파일을 수정하면 다운로드로 연결되므로 자주 저장하지 않는 것이 좋다.
- 다운로드 받은
jar
파일들은C:\Users\사용자\.m2\repository
디렉터리에 저장된다.
- STS를 끈다.
C:\Users\사용자\.m2\repository
디렉터리를 지운다.- 다시 STS를 켠다.
- 새로 다운로드 될 때까지 기다린다.
프로젝트 우클릭 - [Maven] - [Update Project]
- 빌드
- 소스코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정이다.
- 최종적으로 프로젝트를 하나의 툴로 만들어내는 것을 의미한다.
- 프로젝트를 배포할 수 잇게
war
파일로 만든다.
.war
(Web application ARchive, 웹 애플리케이션 저장소)- 웹 애플리케이션을 이루는 자원들을 압축한 파일이다.
(배포할때 사용)
- 메이븐(Maven)
- 그래들(Gradle)
- 각종 라이브러리(다양한
.jar
)를 파일 하나가 대신 해주는 기능이 있다.
(알아서jar
파일을 갖고 온다.)jar
파일을 준비하는 대신 파일 준비를 한다. (pom.xml
)pom.xml
:xml
이라 태그 형태로 존재한다. (제공되는 태그 사용)
- src/main/java
- src/main/resources
- src/test/java
- src/test/resources
- src/main/webapp
- 구조 확인
파일 | 설명 |
---|---|
src/main/java | 자바 소스 파일 |
src/main/resources | 리소스 파일(프로퍼티, XML 등) |
src/test/java | 자바 테스트 코드(단위 테스트, 통합 테스트) |
src/test/resources | 자바 테스트 과정에 필요한 리소스 파일 |
src/main/webapp | 웹 애플리케이션 관련 파일 (resources 디렉터리(HTML/CSS/JS 등), WEB-INF 디렉터리(JSP 등) |
- 메이븐 프로젝트 정보 : 프로젝트 이름, 개발자 목록, 라이선스 정보 등
- 빌드 설정 : 빌드 툴, 소스/리소스, 플러그인 등
- 빌드 환경 : 사용자의 환경마다 달라질 수 있는 프로파일 정보
- POM 연관 정보 : 의존 프로젝트, 상위 프로젝트, 하위 모듈 등
태그 | 설명 |
---|---|
<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>
- 속성의 버전에 따른
디펜던시
(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>
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
- JSP version
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency>
- JUnit version
<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 사이트에서
검색 - 복사 - 붙여넣기
한다.⭐