티스토리 뷰
Maven
- Maven은 어플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구
- 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업을 손쉽게 할 수 있다.
CoC(Convention over Configuration)
- CoC란 일종의 관습을 말하는데, 예를 들자면 프로그램의 소스파일은 어떤 위치에 있어야 하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야 하고 등을 미리 정해놨다는 것
- 관습에 이미 익숙한 사용자는 쉽게 Maven을 사용할 수 있는데, 관습에 익숙하지 않은 사용자는 이러한 제약사항에 대해서 심한 거부감을 느낄 수 있다.
- Maven을 사용한다는 것은 어쩌면 이러한 관습 즉 CoC에 대해서 알아나가는 것이라고도 말할 수 있다.
Maven의 이점
- 편리한 의존성 라이브러리 관리
ex) JSTL을 학습 할 때 /WEB-INF/lib 폴더에 파일들을 직접 다운받아 복사하여 사용, 이런 과정을 줄여준다.
- Maven을 사용하면 설정 파일에 몇 줄 적어줌으로써 직접 다운로드받거나 하는 것을 하지 않아도 라이브러리를 사용 할 수 있다.
- Maven을 사용하면 Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행 할 수 있게 된다.
- 다양한 플러그인을 제공, 많은 일들을 자동화 할 수 있다.
Maven 기본
Archetype을 이용하여 Maven 기반 프로젝트를 생성할 경우 생성된 프로젝트 하위에 pom.xml 파일이 생성된다.
pom.xml 파일을 살펴보면 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
<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> |
cs |
각각의 태그의 의미는 다음과 같습니다.
- project : pom.xml 파일의 최상위 루트 엘리먼트(Root Element)입니다.
- modelVersion : POM model의 버전입니다.
- groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정합니다. 일반적으로 도메인 이름을 거꾸로 적습니다.
- artifactId : 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디를 결정합니다. Maven을 이용하여 pom.xml을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성됩니다. artifactid-version.packaging. 위 예의 경우 빌드할 경우 mysamexamples-1.0-SNAPSHOT.jar 파일이 생성됩니다.
- packaging : 해당 프로젝트를 어떤 형태로 packaging 할 것인지 결정합니다. jar, war, ear 등이 해당됩니다.
- version : 프로젝트의 현재 버전. 추후 살펴보겠지만 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용합니다. Maven의 버전 관리 기능은 라이브러리 관리를 편하게 합니다.
- name : 프로젝트의 이름입니다.
- url : 프로젝트 사이트가 있다면 사이트 URL을 등록하는 것이 가능합니다.
Maven 을 이용할 경우 얻게 되는 큰 이점 중의 하나는 Dependency Management 기능입니다.
위 pom.xml 파일에서 <dependencies/> 엘리먼트가 Dependency Management 기능의 핵심이라고 할 수 있습니다.
해당 엘리먼트 안에 필요한 라이브러리를 지정하게 됩니다.
Maven 프로젝트 작성
url : https://www.edwith.org/boostcourse-web/lecture/16724/
참고 사이트 : http://www.edwith.org/
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
※
'웹 > 부스트코스' 카테고리의 다른 글
[WEB]Ajax 응답 처리와 비동기 (2) | 2018.07.27 |
---|---|
[WEB]JavaScript 배열 (0) | 2018.07.06 |
[WEB]JSTL(JSP Standard Tag Library) (0) | 2018.06.29 |
[WEB]EL(Expression Language) (0) | 2018.06.28 |
[WEB]scope (0) | 2018.06.27 |
- Total
- Today
- Yesterday
- 파이썬 예제
- 파이썬 if문
- 파이썬 객체
- css
- css 박스
- 파이썬 진수 변환
- 자바 에센셜 실습문제
- 자바
- 파이썬 while
- 파이썬 터틀
- 백준
- 자료구조
- 자바스크립트 자료구조
- 파이썬 함수
- 파이썬 연산자
- 백준 1874
- 파이썬 리스트
- 버츄어박스
- 백준 10451
- 명품 c++ 실습
- 파이썬 클래스
- css 그리드
- 파이썬 단계적 개선
- 파이썬 for
- 파이썬
- 웹
- 자바스크립트 그래프
- 파이썬 선택문
- 백준 11501
- 파이썬 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |