라즈베리파이반

라즈베리파이 등 컴퓨터계열 게시판입니다.

제목메이븐 프로젝트 (1) : 이클립스 환경설정2022-11-20 01:34
작성자user icon Level 4

88x31.png


이번 글에서는 이클립스를 통해 스프링 mvc를 만들어보겠습니다.


스프링은 현재 스프링 부트를 위주로 업데이트 되고 있으며, 이클립스에서 최근까지 지원하던 STS3을 더이상 지원하지 않아 최신버전에서는 레거시 프로젝트조차 만들수 없는 상황입니다.


그렇기때문에 이번에는 레거시 프로젝트가 아니라 메이븐 프로젝트를 통해 스프링 mvc를 구성하여 웹어플리케이션을 만들겠습니다.



1. 이클립스 / JDK 11 / Tomcat9 다운로드


우선 이클립스를 다운받도록 하겠습니다.  https://www.eclipse.org/downloads/packages/에 들어갑니다.


인스톨러를 다운받아도 되지만 패키지 파일을 받도록 하겠습니다. 웹어플리케이션을 개발할 것이니 Eclipse IDE for Enterprise Java and Web Developers를 다운로드 합니다.



JDK와 톰캣은 레거시 프로젝트때 다운받은 것을 사용하겠습니다.


oracle JDK 11     Tomcat 9


이클립스 패키지를 적당한곳에 압축을 풀고 작업공간을 만들어줍시다. 저는 eclipse-ws라고 만들었습니다.


eclipse 폴더에 들어가서 eclipse.exe를 실행합니다. 작업공간을 지정해주고 Launch를 클릭하면 이클립스가 실행됩니다.




2. 환경설정 설정


STS3이 이클립스 기반이기 때문에 환경설정의 경우 STS3과 동일하게 설정하면 됩니다.

상단에 Window > Preferences를 클릭합니다.


 


General > Content Types에 들어가서 Text를 선택하고 하단에 Default encodingutf-8을 입력후 Update 버튼을 누르세요.



General > Workspace에서 Text file encoding 또한 UTF-8로 번경 후 Apply 버튼을 누르세요.



Web > CSS Files, Web > HTML Files, Web > JSP Files, XML > XML Files, JSON > JSON Files 또한 EncodingUTF-8로 변경후 Apply 버튼을 누르세요.



이클립스 역시 기존 JDK 버전을 17로 사용하고 있어서 환경변수가 17 버전으로 되어 있습니다. JAVA > Compiler에서 JDK Compiler compliance level11로 변경하고, JAVA > Installed JREs에서 JDK 11버전 경로를 추가한 후 Apply를 클릭하세요.





1) 톰캣 서버 생성


STS와 동일합니다. 상단에 window > Show View > Servers를 클릭하여 서버창을 엽니다.


 


왼쪽 하단에 링크를 클릭하여 서버를 추가합시다.


 


Tomcat v9.0 Server를 선택후 Next 버튼을 클릭합니다.


 


Browse... 버튼을 클릭하여 설치한 톰캣 폴더를 디렉토리로 지정한후 Finish를 클릭하세요.


 


2) 메이븐 프로젝트 생성


메이븐(Maven)은 빌드도구로, pom.xml 파일을 통해 프로젝트 의존성을 관리해줍니다. pom은 Project Object Model의 약자입니다. 스프링 레거시 프로젝트를 만들때 기본 빌드도구로 메이븐을 사용했었습니다. 참고로 스프링 부트 프로젝트의 경우 gradle을 기본 빌드도구로 사용합니다.


우선 상단메뉴에서 File > New > Maven Project를 클릭합니다.



Next를 클릭합니다.


 


maven-archetype-webapp 아티팩트(Artifact)를 검색하여 그룹id가 org.apache.maven.archetype인 아티팩트를 선택하고 Next를 클릭합니다.



그룹id와 아티팩트id를 입력하고 Finish를 눌러 프로젝트를 생성합니다.



하단 콘솔창에 프로젝트를 생성할 것인지 확인하는 문구가 뜹니다. y를 입력하고 엔터를 눌러 프로젝트를 생성합니다.


 


프로젝트가 생성되는데 오류마커가 뜹니다. 마커창을 확인하면 우선 JRE 버전이 달라서 문제가 발생했습니다.


 


좌측에 프로젝트 폴더를 선택후 상단메뉴의 Project > Properties를 클릭합니다.


 


Project Facets에서 Java 버전을 11로 설정후 Apply and Close를 눌러 자바버전을 변경합니다.



JSP 관련 오류도 발생했는데 이것은 의존성이 없기때문입니다. 메이븐 레포지토리를 참고하여 javax.servlet-api, javax.servlet.jsp-api를 의존성으로 추가합니다. jstl도 같이 추가해줍시다.


pom.xml 

...

        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->

        <dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>javax.servlet-api</artifactId>

            <version>3.1.0</version>

            <scope>provided</scope>

        </dependency>

        

        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->

        <dependency>

            <groupId>javax.servlet.jsp</groupId>

            <artifactId>javax.servlet.jsp-api</artifactId>

            <version>2.3.3</version>

            <scope>provided</scope>

        </dependency>

        

        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->

        <dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>jstl</artifactId>

            <version>1.2</version>

        </dependency>

...


index.jsp에 다음 헤더를 입력하고 저장하면 모든 오류가 제거됩니다.


/src/main/webapp/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>

<body>

<h2>Hello World!</h2>

</body>

</html>


아직 web.xml 파일을 설정하지 않아서 루트경로는 /src/main/webapp입니다. 톰캣에 프로젝트를 추가하여 실행시켜보겠습니다.


톰캣서버에 마우스 오른쪽 클릭하고 Add and Remove...를 클릭합니다.



왼쪽에 있는 프로젝트를 선택후 Add >를 클릭하여 오른쪽으로 이동시킨 후 Finish를 눌러 프로젝트를 톰캣서버에 설정합니다.


 


톰캣서버를 클릭후 단축키 Ctrl + Alt + R을 누르면 톰캣서버가 실행됩니다. default 경로는 프로젝트 이름이고, default 포트는 8080입니다.


http://localhost:8080/work로 이동하면 톰캣서버가 잘 작동한다는 사실을 알 수 있습니다.


3) 스프링 프레임워크 의존성 추가


이제 스프링 프레임워크를 의존성 추가해주세요. 프로퍼티로 자바 버전을 설정하고 spring-corespring-webmvc를 추가하겠습니다.


pom.xml

...

    <properties>

        ...

        <org.springframework-version>5.3.23</org.springframework-version>

    </properties>

...

        <!-- 스프링 프레임워크 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-core</artifactId>

            <version>${org.springframework-version}</version>

        </dependency>

        

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-webmvc</artifactId>

            <version>${org.springframework-version}</version>

        </dependency>

...

#eclipse# jdk11# tomcat9# text encoding# maven# pom.xml# maven-archetype-webapp# springframework
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)