"Spring Framework을 사용한 웹애플리케이션 개발환경 만들기" 에서 기본 설치했던 샘플 Spring MVC 프로젝트의 Spring Framework 버전은 3.1.1 입니다. 이것을 현재 버전인 4.3.4 으로 변경합니다. 간단히 될 줄 알았는데, 내가 이러려고 STS 플러그인을 설치했나 싶을 정도로 이것저것 걸리는게 많더군요. 메이븐을 좀 더 공부해야 겠다는 생각이 절로 듭니다. 먼저 기본환경을 확인해보고 어떻게 변경할지 본 후 설정을 해 봅니다.
기본 환경
- Spring Framework 3.1.1
- java version 1.6
- Maven compiler
source 1.6
target 1.6
- servlet-api 2.5
- jsp-api 2.1
변경 될 환경
- Spring Framework 4.3.4
- java version 1.8
- Maven compiler
source 1.8
target 1.8
- servlet-api 3.0
- jsp-api 2.2
설정을 변경해 봅시다. pom.xml 을 수정합니다.
1. java version을 1.6 에서 1.8로 springframework 버전을 3.1.1로 4.3.4로 변경합니다.
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.3.4.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
2. Servlet api 버전을 2.5에서 3.0.1 로 변경합니다. 여기에서는 artifactId 도 servlet-api 에서 javax.servlet-api로 바꼈습니다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
3. jsp api 버전을 2.1에서 2.2로 변경합니다.
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
4. maven compiler 설정을 소스와 타겟을 1.8로 변경합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
5. 이제 프로젝트 설정을 수정합니다. 프로젝트 오른쪽 버튼 클릭해서 Properties 를 선택합니다.
6. Java Build Path 를 선택합니다. Libraries 에서 JavaSE1.6을 1.8로 변경합니다. 변경 방법은 "Spring Framework을 사용한 웹애플리케이션 개발환경 만들기" 를 참조하세요.
7. Java Compiler 설정에서 Compiler compliance level 을 1.8로 지정합니다. Build Path 가 잘 설정되었다면 1.8이 되어 있을 겁니다.
8. Project Facets에서 Dynamic Web Module 을 3.0 으로, java는 1.8로 설정합니다. 설정이 변경이 안되는 경우가 있습니다. 이 때는 이클립스를 종료한 후 프로젝트 폴더아래 .settings 폴더에 있는 org.eclipse.wst.common.project.facet.core.xml 파일을 텍스트 에디터로 열어서 직접 수정한 후 이클립스를 실행하고 다시 변경하면 됩니다.
9. 프로젝트명에 마우스 오른쭉 키를 누르고 팝업 메뉴에서 Maven -> Update Project 를 선택해서 설정 내용을 적용합니다.
모든 설정이 적용되었습니다. 프로젝트명에 빨간색이 없고, 하단의 Probles 탭에 아무 내용도 없어야 합니다. 물론 실행시켜도 잘 동작해야 합니다. 추가로 적용 도중에 다음과 같은 에러가 발생했었습니다.
Archive for required library: 'C:/Users/PENTODE/.m2/repository/org/springframework/spring-beans/4.3.4.RELEASE/spring-beans-4.3.4.RELEASE.jar' in project 'spring_test' cannot be read or is not a valid ZIP file spring_test Build path Build Path Problem
jar 파일이 다운로드 되기는 했지만, 잘못된 파일이라는 내용이 나오더군요. 여기저기 찾아보니 여러가지 해결책이 있었지만, 나의 경우 해결할 수 있었던 방법은 사용자 폴더 아래 maven 로컬 리포지토리를 ( .m2/repository ) 모두 삭제하고, Maven -> Update Project 를 다시 실행하니 해결이 되었습니다.
※ 추가
댓글에서 update문제 님이 제가 빼먹은 부분을 찾아 주셨네요. 감사합니다. 서블릿 스펙이 변경되면 web.xml 파일의 DTD 도 버전에 맞게 수정되어야 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
</web-app>
'프로그래밍 > 스프링프레임워크' 카테고리의 다른 글
Spring Framework 메세지 국제화(다국어 지원) 사용하기 (4) | 2018.04.02 |
---|---|
스프링 프레임웍에서 MyBatis, Oracle 사용하기 (24) | 2018.04.01 |
Spring Framework을 사용한 웹애플리케이션 개발환경 만들기 (0) | 2018.04.01 |
Apache Tiles 설정하기 (0) | 2018.04.01 |
Spring + Apache Tiles 설치하기 (1) | 2018.04.01 |