가희의자기개발블로그

환경 설정 (1-2) 본문

프로젝트/What's in My Cart

환경 설정 (1-2)

가희gahui 2020. 10. 2. 19:24
반응형

진짜 실습(?)을 해보자

 

 

먼저 Gradle과 Java로 설정을 해준다. 그리고 위 Project SDK 이거는 내가 어떤 JDK로 실행할지 설정을 해주는 거기때문에 본인이 사용하는 자바버전과 잘 맞춰주자!!(난 JDK최신버전을 사용했다가 엄청 고생해서 결국에 JDK1.8로 개발을 진행했다.)

 

다음은 인텔리제이에서 만든 프로젝트명을 설정하는 단계이다. IdeaProjects는 Eclipse의 workspace와 같다고 생각하면 된다. 

 

GroupId와 ArtifactId를 지정한다. ArtifactId는 프로젝트의 이름이 되기 때문에 원하는 이름으로 작성해 주면 된다. 

GroupId는 예를들어 naver.com이런것 처럼 url을 반대로 한것처럼 작성하라고(?) 학원에서 배웠다. 

 

여기 까지하면 그레이들 기반의 자바 프로젝트가 생성된다. 

 

이제 그레이들 프로젝트를 스프링 부트 프로젝트로 변경해 보자. 인텔리제이에서 build.gradle 파일을 열어 보자 다음과 같은 간단한 코드들이 있을 것이다. 

 

plugins {
    id 'java'
}

group 'com.example.whatsinmybag'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

위 코드들은 자바 개발에 기초적인 설정만 되어있는 상태이기 때문에 스프링부트에 필요한 설정들을 하나씩 추가해야 한다. Intellij를 이용한다면 스프링 이니셜라이저를 통해서 쉽게 설정할 수 있지만, build.gradle의 코드가 정확히 무슨 역할을 하는지 모르는상태로 개발을 할 수 있기 때무에 직접 수동(?)으로 설정을 익혀보자!

 

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

 

위 코드는 이 프로젝트의 플러그인 의존성 관리를 위한 설정이다. 

ext라는 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 의미인데, 여기서는 springBootVersion 전역변수를 생성하고 그 값을 '2.1.7.RELEASE'로 하겠다는 의미이다. 즉, spring-boot-gradle-plugin이라는 스프링 부트 그레이들 플러그인의 2.1.7.RELEASE를 의존성으로 받겠다는 의미이다. 

 

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

위는 앞서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드이다. 

io.spring.dependency-management 플러그인은 스프링 부트의 의존성을 관리해 주는 플러그인이기 때문에 꼭 추가해줘야한다. 

앞 4개의 플러그인은 자바와 스프링부트를 사용하기 위해서는 필수 플러그인들이니 항상 추가해줘야한다. 

나머지 코드는 다음과 같다.

 

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')

}

repositories는 각종 의존성들을 어떤 원격 저장소에서 받을지를 결정한다. 기본적으로는 위와 같은 mavenCentral을 많이 사용하지만, 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 이용한다고 한다. (jcenter를 점점더 많이 이용한다고 하나 나는 아직 잘 모르겠다...)

 

그 다음 denpendencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다. 여기서는 org.springframework.boot:spring-boot-starter-web와 org.springframework.boot:spring-boot-starter-test를받도록선언했다.

여기서 중요한 것은 버전을 명시하면 안된다는 것이다. 그래야 위에서 작성한 스프링 버전을 따라가게 되기 때문이다. 

 

전체적인 코드는 다음과 같다.

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'


group 'com.cartrapido'
version '1.0-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')


}
반응형

'프로젝트 > What's in My Cart' 카테고리의 다른 글

인텔리제이에서 깃과 깃허브 사용하기  (1) 2020.10.02
환경설정 (1)  (0) 2020.09.21
Comments