1. 이클립스를 실행하고, 이클립스의 메뉴 중 File -> New -> Project를 선택한다.
2. 프로젝트 위자드(Wizard)가 뜨면 Maven아래의 Maven Project를 선택한 후 Next버튼을 클릭한다.
<2. DB 연결 웹 애플리케이션 - Maven>
http://www.edwith.org/boostcourse-web
* Maven이란?
Maven은 지금까지 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구이다.
Maven을 사용하면 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업을 손쉽게 할 수 있다.
Maven을 이해하려면 CoC(Convention over Configuration)라는 단어를 먼저 이해해야 한다.
CoC란 일종의 관습을 말한다. 프로그램의 소스파일은 어떤 위치에 있어야 하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야 하는 것 등을 미리 정해놓은 것이다.
* Maven의 장점
편리한 의존성 라이브러리 관리
JSTL을 학습할 때, 몇 가지 파일을 다운로드 하여 /WEB-INF/lib폴더에 복사하여 사용했다. 관련된 라이브러리가 많아질수록 이러한 방식은 상당히 불편해진다. Maven을 사용하면 설정 파일에 몇 줄 적어줌으로써 직접 다운로드 받지 않아도 라이브러리를 사용할 수 있다.
Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행할 수 있게 된다.
Maven은 다양한 플러그인을 제공하므로 많은 일들을 자동화시킬 수 있다.
* Maven 기본
Archetype을 이용하여 Maven 기반 프로젝트를 생성할 경우 생성된 프로젝트 하위에 pom.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 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을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성된다. artifactid-version.packaging. 위 예의 경우 빌드할 경우 mysamexamples-1.0-SNAPSHOT.jar 파일이 생성된다.
packaging : 해당 프로젝트를 어떤 형태로 packaging 할 것인지 결정한다. (jar, war, ear 등이 해당)
version : 프로젝트의 현재 버전. 추후 살펴보겠지만 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용한다. Maven의 버전 관리 기능은 라이브러리 관리를 편하게 한다.
name : 프로젝트의 이름
url : 프로젝트 사이트가 있다면 사이트 URL을 등록하는 것이 가능하다.
위 pom.xml 파일에서 <dependencies/> 엘리먼트가 Dependency Management 기능의 핵심이라고 할 수 있으며 해당 엘리먼트 안에 필요한 라이브러리를 지정하게 된다.
* Maven 사용하기
* JSTL 라이브러리 추가하기
1. pom.xml 파일 수정
2. 프로젝트 property -> Project facets 항목에서 다이나믹 웹 모듈의 버전이 2.3일 경우
다이나믹 웹 모듈의 2.4부터 EL이 기본으로 사용할 수 있도록 설정되기 때문에 2.3일 경우에는 EL표기법의 결과가 출력되지 않는다.
따라서 이럴 경우엔 아래와 같이 WEB-INF의 web.xml 파일 수정해야 한다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Archetype Created Web Application</display-name>
</web-app>
3. 이클립스 navigator에서 프로젝트아래의 .settings/org.eclipse.wst.common.project.facet.core.xml 파일을 열고 아래와 같이 수정한다.
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="3.1"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.8"/>
</faceted-project>
* 이후 적용되지 않고 오류가 발생하는 것은 수정되기 전의 데이터와 수정된 데이터가 섞여서 실행되기 때문이다.
기존 tomcat 종료
혹시 바뀌지 않았다면 프로젝트를 선택하고, 우측버튼을 눌러서 Maven 메뉴 아래의 update project를 선택한 후 확인
Servers view에서 기존 Tomcat Runtime을 삭제
Project 메뉴의 Clean 선택
프로젝트 익스플로러에서 Server 삭제
#02. BE - Rest API (0) | 2018.07.18 |
---|---|
#02. BE - JDBC (0) | 2018.07.17 |
#02. BE - JSTL (0) | 2018.07.14 |
#02. BE - EL (0) | 2018.07.14 |
#02. BE - Scope (0) | 2018.07.14 |