Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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
Archives
Today
Total
관리 메뉴

행동하는 몽상가

IntelliJ, Maven | Spring MVC 프로젝트 생성 및 배포(war) 파일 생성 본문

IntelliJ

IntelliJ, Maven | Spring MVC 프로젝트 생성 및 배포(war) 파일 생성

DNO_story 2022. 9. 27. 12:45

 

 


오늘은 인텔리제이로 스프링 MVC 프로젝트를 생성하고, 배포 파일까지 만들어보겠습니다.

 


먼저, 인텔리제이 실행 후 'Create New Project'를 클릭한 뒤 'Maven'을 선택합니다.
SDK 버전 확인 후 (없다면 설치해주셔야 합니다.) archetype은 선택하지 않고, 'NEXT'를 클릭합니다.
[Tip] 다른 사람들과 협업을 하는 경우 SDK 버전을 동일하게 맞춰주셔야 합니다.


프로젝트 이름, 저장 위치를 확인한 후 'FINISH'를 클릭합니다.
'GroupId'는 그대로 두셔도 되고, 원하시는 대로 변경하셔도 됩니다. (예. org.example / org.spring.project 등)


'FINISH'를  선택했다면 다음과 같은 화면을 볼 수 있습니다.


이제 프레임워크를 추가해야 합니다. 프로젝트 우클릭 후 'Add Framework Support...'를 선택합니다.


좌측에 뜨는 여러가지의 프레임워크 중 'Spring MVC'를 선택합니다.

인텔리제이에서 자동으로 추가 가능한 버전이 뜨는 것을 볼 수 있습니다. (Spring MVC-5.2.3 .RELEASE)

'OK'를 클릭합니다.


 

 

기본적인 프로젝트 생성이 끝났으니 이제 라이브러리를 이용해 의존성을 추가해줘야 합니다.

'pom.xml'을 열어 다음과 같은 코드를 추가합니다.

    <properties>
        <java.version>8</java.version>
        <spring.framework.version>5.2.3.RELEASE</spring.framework.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.framework.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

위의 코드를 추가한 결과는 다음과 같습니다.

 

※ 코드 상에서 보이는 빨간 라인은 'Maven Install'을 진행하면 사라집니다.

 

우측에 보이는 'Maven'을 클릭한 뒤 '프로젝트이름' > 'Lifecycle' > 'install' 을 더블클릭 해줍니다.

 

다음과 같이 빌드가 잘 끝나고, 빨간 라인이 사라진 것을 확인할 수 있습니다.

 


다음으로 'web.xml' 파일을 열어보면 'url-pattern'이 '*.form'으로 되어있는데 '/'로 수정해주세요.

 


 

 

이제 패키지를 만들어주겠습니다. 좌측에 'Java' > 'New' > 'Package'를 선택해 프로젝트 설정 초반에 자신이 설정해줬던 GroupId를 적어줍니다. (예. com.example)

저는 'com.web.spring'이었습니다.


이제 'web' > 'WEB-INF' > 'dispatcher-servlet.xml'을 다음과 같이 수정해줍니다. 빨간색으로 표시된 부분은 방금 만든 자신의 패키지 url을 적어줘야 합니다.

추가해줄 코드는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <mvc:annotation-driven />
    <context:component-scan base-package="자신의_패키지_url" />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

'File' > 'Project Structure...' 클릭합니다.

 

다음과 같은 창이 뜨면 'Artifacts' > 'Available Elements'에 '프로젝트 이름' 열기 > 하단에 뜬 모든 파일을 선택해 오른쪽 마우스 클릭 > 'Put into /WEB-INF/lib' 선택 > 'APPLY', 'OK'를 클릭합니다.


 

 

자, 이제 프로젝트 설정 부분은 끝났습니다. 본격적으로 코드를 작성해봅시다.

컨트롤러 생성을 위해 자신의 프로젝트 패키지 가장 하단에서 '오른쪽 마우스 클릭' > 'New' > 'Java Class' 를 선택한 후 클래스 이름에 'HomeController'를 입력 후 엔터를 누릅니다.

 

'HomeController'가 생성된 것을 볼 수 있으며 아래와 같이 코드를 입력해줍니다.

package com.web.spring; 
//자신의 패키지 url

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping("/")
    public String home() {
        return "index";
    }
}

이제 화면 상에 보여지는 view 파일을 생성해야 합니다.

앞서 'dispatcher-servlet.xml'을 생성할 때 view의 url을 '/WEB-INF/views/"로 설정했기 때문에 'HomeController'에서 리턴 값으로 설정한 index는 해당 url 밑에 있어야 합니다. (예. /WEB-INF/views/index.jsp)

 

'web' > 'WEB-INF' 오른쪽 마우스 클릭 > 'New' > 'Directory' 클릭 후 'views' 이름의 디렉토리를 생성해줍니다.

 

'views' 디렉토리가 생성되었다면 'views' 오른쪽 마우스 클릭 > 'New' > 'JSP/JSPX' 를 클릭하여 'index' 이름의 jsp 파일을 생성합니다.

 

"Hello World!!!"를 출력하기 위해 'index'를 수정했으며 코드는 다음과 같습니다.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>SpringProject</title>
</head>
<body>
  <h2>Hello World!!!</h2>
</body>
</html>

코드 입력도 끝났으니 "Hello World!!!"가 제대로 출력되는지 확인해봅시다.

우선 프로젝트를 실행하려면 'Tomcat' 서버를 구동해야 하니 설정을 위해 화면 우측 상단에 'ADD CONFIGURATION'을 클릭합니다.

 

다음과 같은 창이 떴다면 'Add new...' 클릭 > 'Tomcat Server' > 'Local' 을 선택합니다.

 

다음과 같은 창이 떴다면 하단에 'FIX'를 클릭합니다.

혹시나 'Tomcat'이 설치되어 있지 않다면 첨부한 링크에 들어가 다운받으셔야 합니다.

톰캣 다운로드 링크 - [https://tomcat.apache.org/download-90.cgi]

 

'FIX' 를 클릭하면 다음과 같은 창이 뜨며 'Application context'를 '/'로 설정해준 뒤 'APPLY' > 'OK'를 클릭합니다.

 

아까와는 다르게 'Configuration'에 'Tomcat'이 설정되어 있는 것을 볼 수 있습니다. 'Run' 버튼을 클릭합니다.

 

자동으로 크롬 창이 뜨며 jsp에 입력한 내용이 잘 출력됩니다!

 

 

Tip. 현재 url이 'localhost:8080'으로 되어있죠? 이유는 앞서 설정에서 url을 '/'로 맞춰주었기 때문입니다. 이것을 '/main' 등으로 바꿔주면 기본 로딩 url이 'localhost:8080/main'으로 설정됩니다. 하지만 이때 controller에서도 '/main'에 해당하는 매핑이 있어야 한다는 점 잊지마세요!

 

 


 

마지막으로, 배포 파일(.war)을 만들어보겠습니다.

'File' > 'Project Structure...'

 

'Artifacts' > 왼쪽 상단 '+' 클릭 > 'Web Application: Archive' > 'For 'SpringProject:war exploded''

 

'프로젝트이름_war.war' 이름을 '프로젝트 이름.war' 로 변경 > 'APPLY' > 'OK'

 

'Build' > 'Build Artifacts...' > '프로젝트 이름:war' > 'Build'

 

프로젝트 내에 'out' 이라는 디렉토리가 생성되고 'out' > 'artifacts' > '프로젝트 이름_war' 안에 .war 파일이 생성된 것을 확인할 수 있습니다!

 

이와 관련된 모든 소스 코드는 깃허브에 올려두었습니다.

참고 해주시고 'git clone' 받았을 때 'artifacts' 관련 에러가 난다면 'Rebuild' 후 실행 하시길 바랍니다.

 

Github Link : https://github.com/skLee-HGU/SpringProject


 

 

이상으로 인텔리제이에서 스프링 MVC 프로젝트, 배포 파일 생성 정리를 마치도록 하겠습니다!
그럼 20000 :D