Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 동적계획법
- pandas
- 에라토스테네스의 체
- HashMap
- 어려웠던 문제
- 튜플
- 문자열
- 영문자 확인
- 프로그래머스
- 쿼드압축 후 개수세기
- fragment identifier
- python
- dfs
- 점프와 순간이동
- 메뉴리뉴얼
- 조합
- 완전탐색
- 완전 탐색
- 반복문
- HashSet
- 보이어무어
- 최소공배수
- Dynamic Programming
- 규칙찾기
- Java
- Stack
- 알고리즘
- 후위 표기법
- 2017 카카오 코드
- 순열
Archives
- Today
- Total
csmoon1010의 SW 블로그
Maven - (부스트코스) 본문
1. 개요
- 애플리케이션이 복잡해지면서 반복적으로 진행하는 작업을 지원하기 위한 도구
- Maven을 사용해 다음과 같은 일을 처리할 수 있다.
- 빌드(Build)
- 패키징
- 문서화
- 테스트와 테스트 리포팅
- git
- 의존성 관리
- 형상관리서버(svn 등)와의 연동 (SCMs)
- CoC (Convention over Configuration) : 프로그램의 소스 파일 위치, 컴파일된 파일들의 위치 등의 관습
⇨ Maven의 사용은 CoC에 대해서 알아나가는 것!
2. 장점
- 편리한 의존성 라이브러리 관리 : 설정 파일을 관리해 직접 다운로드하는 불편함 해소
- 일관된 방식의 빌드 가능
- 다양한 플러그인 : 자동화의 효과
3. pom.xml
Maven 사용 시의 설정 파일
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.or.connect</groupId>
<artifactId>examples</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mysample</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
- project : pom.xml 파일의 최상위 루트 엘리먼트(Root Element)
- modelVersion : POM model의 버전
- groupId : 프로젝트를 생성하는 조직의 고유 아이디 (일반적으로 도메인 이름을 거꾸로 적음)
- artifactId : 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디
Maven을 이용하여 pom.xml을 빌드할 경우 : artifactid-version.packaging (ex> examples-1.0-SNAPSHOT.jar) - packaging : 해당 프로젝트의 packaging 형태 (ex> jar, war, ear 등)
- version : 프로젝트의 현재 버전. 라이브러리를 편하게 관리할 수 있는 버전 관리 기능.
(프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용) - name : 프로젝트의 이름
- url : 프로젝트 사이트가 있다면 사이트 URL을 등록
- dependencies : 프로젝트가 의존하고 있는 라이브러리들 (의존성 관리)
4. Maven 프로젝트 디렉토리 구조
5. Maven 프로젝트 생성
(1) File - New - Maven Project - Archetype(아키타입) 선택
**Archetype(아키타입) : 일종의 프로젝트 템플릿 (웹앱 : maven-archetype-webapp)
(2) Maven project 정보 설정 : groupid, artifact id 입력
(3) pom.xml 에 필요한 라이브러리 추가
- JDK 1.8 사용 : <configuration> 설정, Java EE Integration enable
- WAS의 Tomcat 설정 : javax.servlet-api 설정
※ scope
- compile : 컴파일 할 때 필요. 테스트 및 런타임에도 클래스 패스에 포함. (scope 을 설정하지 않는 경우 기본값)
- runtime : 런타임에 필요. 컴파일 시에는 필요하지 않지만, 실행 시에 필요한 경우. (ex> JDBC 드라이버)
- provided : 컴파일 시에 필요하지만 배포 시 제외. 실제 런타임 때에는 컨테이너 같은 것에서 제공되는 모듈.
(ex> servlet, jsp api 등) - test : 테스트 코드를 컴파일 할 때 필요하지만 배포 시 제외. 테스트 시 클래스 패스에 포함
- JSTL 사용 : pom.xml 설정 + web.xml과 .settings/org.eclipse.wst.common.project.facet.core.xml에서 dynamic web module ver 변경
'웹 > 백엔드' 카테고리의 다른 글
WEB API - (부스트코스) (0) | 2021.04.09 |
---|---|
JDBC - (부스트코스) (0) | 2021.04.08 |
JSP의 JSTL & EL - (부스트코스) (0) | 2021.04.05 |
JSP의 Scope - (부스트코스) (0) | 2021.03.30 |
JSP의 redirect & forward - (부스트코스) (0) | 2021.03.23 |
Comments