티스토리 뷰

728x90
반응형

Spring Boot 프로젝트를 생성하는 방법 중 Spring initializr를 활용하는 방법이 있다.

Spring initializr 활용

Spring initializr는 다음에서 접속할 수 있다.

https://start.spring.io/


Project : Project는 Spring Boot를 빌드하고 배포하는 방식이다. Maven, Gradle 중 선호하는 프로젝트를 선택한다.

  > Maven Project

  > Gradle Project (O)

Language : 개발 언어는 Java, Kotlin, Groovy를 지원하며, Java를 선택한다.

  > Java (O)

  > Kotlin

  > Groovy

Spring Boot : Spring Boot 버전을 선택한다.

  > 2.3.4 (O)

  ..

  ..

Project Metadata : Spring Boot Embedded Tomcat 기반으로 기동하기위해 Jar Package하는 com.lgcns.nrson package를 갖는 Project를 생성한다. Java는 8을 사용한다.

  > Group : com.lgcns

  > Artifact : nrson

  > Name : nrson

  > Description : NRSON Project for Spring Boot

  > Package name : com.lgcns.nrson

  > Packaging : Jar (O), War

  > Java : 14, 11, 8 (O)

Dependencies : DEPENDENCY로 포함할 라이브러리를 선택한다.

> ADD DEPENDENCIES 버튼 클릭

> Embedded Tomcat 추가를 위한 Spring Web 라이브러리 추가

> Lombok 어노테이션을 사용하기 위한 Lombok 라이브러리 추가

위와 같이 디펜던시를 추가하면 다음과 같이 포함된 것을 확인할 수 있다.

하단의 GENERATE 버튼을 클릭하면 nrson.zip 파일을 다운로드 받을 수 있다.


Spring Boot Package 확인

먼저 다운로드 받은 nrson.zip 파일 압축을 해제한다.

해당 경로를 IDE (Eclipse, STS 등) import project로 등록한다.

> Existing Gradle Project 선택

> Next 버튼 (How to experience the best Gradle integration)

> 압축을 해제한 nrson 경로를 선택한다.

> Finish 버튼

위와 같이 Gradle Project에 nrson이 나타나면 정상적으로 추가된 것이다.

Spring Boot Gradle Project 구조

프로젝트 구조는 다음과 같다.

Package 구조는 일반 Maven Project와 동일하지만, Gradle 관련 Configuration 파일의 차이가 있다.

build.gradle

build.gradle 파일은 Maven의 pom.xml과 같은 역할을 한다. 모든 역할을 여기에 나열하지는 않겠지만 몇가지 주요 구성만 알아보자.


plugins {
    id '
org.springframework.boot' version '2.3.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

 

group = 'com.lgcns'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

 

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

 

repositories {
    mavenCentral()
}

 

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'

    compileOnly 'org.projectlombok:lombok'

    annotationProcessor 'org.projectlombok:lombok'

    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'

    }
}

 

test {
    useJUnitPlatform()
}


- plugins : plugin module 적용

- sourceCompatibility : Java Version

- repositories : 라이브러리 저장소

  > mavenCentral 가장 기본 Maven 리포지토리

  > maven.url 기타 Maven 리포지토리 URL 지정

  > maven.credentials Maven 리포지토리 로그인 정보

  > jCenter Bintray jCenter 리포지토리

- configurations : 의존성 관리. 시점 베이스로 사용자가 스스로 자신만의 구성을 추가할때 사용. 예를 들어 컴파일 시점에는 필요하지 않지만, 운영 배포 시점에 필요한 JDBC를 등록하는 등의 경우.

  > compile 프로젝트를 컴파일할 때 필요한 의존 라이브러리들
  > runtime 프로젝트를 실행할 때 필요한 의존 라이브러리들. 기본적으로 compile을 모두 포함한다.
  > testCompile 프로젝트의 테스트를 컴파일할 때 필요한 라이브러리들. 기본적으로 프로젝트의 컴파일된 클래스들과 compile 의존성을 포함한다.
  > testRuntime 프로젝트의 테스트를 실행할 때 필요한 라이브러리들. 기본적으로 compile, runtime, testCompile 의존성을 포함한다.

- dependencies : 의존성 관련 라이브러리 추가

  > implementation dependency 모듈을 추가한다.

  > compile → 먼저 compile 시점에 필요한 디펜던시 라이브러리들을 compile로 정의한다.

  > runtime → 런타임 시에 참조할 라이브러리를 정의합니다. 기본적으로 compile 라이브러리를 포함한다.

  > compileOnly → 컴파일 시점에만 사용하고 런타임에는 필요없는 라이브러리를 정의한다.

  > testCompile → 프로젝트의 테스트를 위한 디펜던시 라이브러리를 정의합니다. 기본적으로 Compile된 클래스와 compile 라이브러리를 포함한다.

  > annotationProcessor → annotation 프로세서 대표적으로 Lombok 등의 라이브러리를 추가하는데 정의한다.

  > testImplementation → 테스트 관련 라이브러리 종속성을 추가하는데 정의한다.

settings.gradle

전체 프로젝트 관련 설정을 관리하는 파일이다.


rootProject.name = 'nrson'

 

include 'my_company'
include 'my_salary'


  > rootProject.name : 자기 자신의 프로젝트이다.

  > include : 하위 프로젝트를 포함한다.

이와 같은 Spring Boot Gradle 프로젝트는 두가지 방법으로 기동할 수 있다.

1. 일반적인 Spring Boot Application 기동 방법

Run As → Spring Boot Application (or Alt + Shift X, B)

2. Boot Dashboard

local  nrson 우클릭 start

그 밖에는 일반 Maven Project와 동일하다고 볼 수 있다.

728x90
반응형