본문 바로가기
Spring Boot

[Intellij] Spring MVC & Maven 5.2.3 프로젝트 설치 및 pom.xml version 빨간글씨 에러 해결

by 디토20 2021. 2. 17.
반응형

* WHITEPEAK 님의 블로그를 참고하였습니다.


사수한테 Intellij에 Spring MVC & Maven 프로젝트를

설치해 보라는 미션을 받았다.

 

이를 위해 두가지 참고자료를 받았는데

첫번째는 조금 이상했고

두번째가 WHITEPEAK 님의 설치 법이었다.

 

글은 springframework version이 4.3.18 이었지만

지금은 이미 5.2.3으로 업데이트 되었고,

따라하는 도중에 자꾸 pom.xml에서

dependency의 artifactId와 version에서

빨간 글씨가 뜨면서 에러가 나는 문제가 발생.

 

처음엔 버전 문제인가 싶어서

버전도 낮춰보고

숫자도 바꿔보고

이블로그 저블로그 타고 다니며

다른 방법으로 프로젝트를 만들기 위해

문제를 해결하려고 노력했으나,

 

결론은 약 30번의 프로젝트를 만들었다 지웠다 하는 과정에서

문제를 해결할 수 있었다.

 


 

[1] Maven 프로젝트 생성하기

 

 

IntelliJ를 실행 후 Create New Project를 클릭

 

New Project 목록에서 Maven을 클릭하고 Project SDK에서 JDK 버전을 선택해 줍니다.

 

기본은 15버전인데,

1.8버전으로 설명이 나와있길래 

 

1.8로도 만들어보고 15로도 만들어 봤는데

전부 정상적으로 작동했습니다.

 

Next를 클릭해주세요.

 

 

 

 

 

프로젝트에 대한 이름을 설정해주는 란인데

저는 연습용이기 때문에

그냥 기본으로 정해주는걸로

finish 눌렀습니다.

 

 

[2] Spring Framework 설정하기

 

 

좌측에서 본인의 프로젝트 이름을 우클릭 한뒤

Add framework Support.. 를 클릭합니다.

 

 

 

좌측에서 쭉 내려

Spring MVC (5.2.3.RELEASE) 를 선택해 주세요.

 

 

 

 

그럼 이렇게 

web 디렉토리가 하위 파일들이 자동으로 생성된걸 확인 할 수 있습니다.

 

 

 

[3] Tomcat 설정하기

 

 

우측 상단 툴바에서 Add Configuration...을 클릭해주세요.

 

 

 

 

Run/Debug Configurations 창에서 좌측 상단 +를 클릭한 뒤 Tomcat Server->Local를 클릭해주세요.

 

 

 

 

 

 

톰캣이 없을 경우

 

https://tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications ar

tomcat.apache.org

 

이곳에서 다운받으 실 수 있습니다.

 

 

톰캣을 설정 한 후

우측 아래 Fix를 눌러줍니다.

 

 

 

 

 

 

Deployment 화면으로 이동되면 Application context /로 입력해주세요.

 

톰캣 사용시

꼭 JAVA_HOME 환경변수 설정을 진행 한 뒤

톰캣이 제대로 구동 되는지 확인 후 해주세요

 

환경변수 설정법은 인터넷에 잘 나와있으니

따로 설명하지 않겠습니다.

 

 

톰캣 설정은 끝났습니다.

 

 

 

 

 

[4]pom.xml 파일 설정

가장 애를 먹었던 부분입니다.

 

 

 

아래의 코드를 입력해주세요.

 

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>untitled1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>4.3.18.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <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>
        </plugins>
    </build>
</project>

 

여기서

version 쪽에서 빨간 글씨 뜨는 분들

우측 상단에 있는

 

 

이 새로고침 아이콘을 눌러주면

모든게 해결 됩니다..!

 

 

 

(Ctrl+Alt+Shift+S) 단축키를 이용하여 Project Structure 창으로 이동해주세요.

목록에서 Artifacts를 클릭 후 Output Layout->Available Elements의 라이브러리 두개를 더블클릭해주세요.

 

 

 

 

 

[5] log4j.xml파일 설정하기

 

 

 src/main/resources 디렉토리에 log4j.xml 파일을 생성하고 아래 코드를 입력해주세요.

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p: %c - %m%n" />
		</layout>
	</appender>

	<logger name="org.springframework.core">
		<level value="info" />
	</logger>	
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="info" />
		<appender-ref ref="console" />
	</root>
	
</log4j:configuration>

 

처음에 작성하면

빨간게 두 줄 뜨는데

당황하지 말고 무시하고 아래로 쭉쭉 진행해주세요.

 

 

 

 

 

[6] Controller 생성

 

 

web.xml 파일에서 <url-pattern> ... </url-pattern> 태그 사이를 /로 수정해주세요.

 

 

 

 

src/main/java 디렉토리에 controller 패키지를 생성해주세요.

그리고 해당 패키지에 HomeController.class 파일을 생성하고 아래 코드를 입력해주세요.

 

 

package controller;

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

@Controller
public class HomeController {
    @RequestMapping("/")
    public String index(Model model) {
        return "index";
    }
}

 

 

 


 

 

dispatcher-servlet.xml 파일에 아래 코드를 입력해주세요.

 

 

 

<?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: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/context https://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="controller" />
</beans>

 

 

 

 


 

 

 

이제 상단바에서 Run Tomcat으로 서버 실행 해주시고

Build Project 해주시면

 

 

페이지가 구동 되는것을

확인 할 수있습니다

 

 

 

기쁘다

728x90
반응형

댓글