본문 바로가기

프로그래밍/Spring

intellij를 통한 Spring MVC, Maven 프로젝트 생성하기

Maven 프로젝트 생성

Maven으로 프로젝트 생성
GroupId, ArtifactId, ProjectName 설정

GroupId

  • group id는 프로젝트마다 접근할 수 있는 고유한 이름으로 설정한다. 보통은 패키지 네이밍에 대한 규칙(도메인 뒤집기)을 따르는게 정석이다.
  • ex) org.apache.maven, org.apache.commons

ArtifactId

  • artifact id는 jar 파일에서 버전 정보만 뺀 것을 이름으로 설정하게 된다. 이름의 형식은 정해져있지 않으나 소문자를 사용하며 특수문자를 사용하지 않는 것을 권장한다.
  • ex) maven, commons-math

 

프로젝트를 생성한 후에는 우측 아래에 팝업창으로 생성되는 enable auto import를 클릭해주는 것이 좋다.

정상적으로 프로젝트가 생성되었을 때 화면


 

Spring MVC 적용하기

Spring MVC를 체크해 프레임워크를 지정해준다.

Spring MVC를 체크해 해당 프레임워크가 프로젝트에 적용되도록 해준다.

intellij는 기본적으로 Spring 4 버전을 지원해주고 있다.

제대로 설정되었을 때 디렉토리 상태

web 폴더 내 각 xml파일별 역할

관련된 설정 IntelliJ Eclipse
bean 설정 applicationContext.cml root-context.xml
내부 웹에 관한 처리작업 설정 dispatcher-servlet.xml servlet-context.xml
Tomcat 구동에 대한 설정 web.xml web.xml

 

Apache Tomcat을 통해 프로젝트가 실행되도록 설정

Add Configuration 클릭
Tomcat Server > Local 선택
이름 및 톰캣 경로 설정 후 우하단의 Fix선택
/로 변경해 루트 경로로 설정


 

pom.xml 설정하기

  • pom.xml파일을 이용하게 되면 프로젝트, 라이브러리 의존성, 빌드 등에 대한 설정을 할 수 있다.
    <properties>
        <java-version>13.0.1</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>
    </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></project>태그 사이에 입력해준다.
  • pom.xml에 대한 설정이 완료되었으면 ctrl+alt+shift+S를 입력해 Project Structure화면으로 이동한다.

Artifacts탭으로 이동 후 오른쪽 프로젝트 폴더 내에 있는 모든 라이브러리들을 더블클릭해 왼쪽으로 이동시켜준다.
이동 완료 후 화면


 

추가적인 라이브러리 설치하기

  • 아래의 링크로 들어가 원하는 라이브러리를 검색 후 나오는 코드라인을 pom.xml 내의 dependencies태그 사이에 입력해주게 되면 해당 라이브러리가 정상적으로 설치됨을 확인할 수 있다.

 

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

Google Api eXtensions for Java Last Release on Dec 13, 2019

mvnrepository.com

 

 

참고 1 : https://whitepaek.tistory.com/41

 

[IntelliJ] Spring MVC, Maven 프로젝트 설정 방법

시작하기에 앞서.. 해당 포스트에서는 스프링에 대한 이론적인 설명은 작성하지 않았습니다. 이론적인 부분은 훌륭한 참고 서적이 많기 때문에 해당 서적을 구입하여 반복적으로 학습하는 것을 추천해 드립니다...

whitepaek.tistory.com

참고 2 : https://maven.apache.org/guides/mini/guide-naming-conventions.html

 

Maven – Guide to Naming Conventions

 

maven.apache.org