스프링 이니셜라이저로 간단히 생성 가능
프로젝트의 플러그인 의존성 관리 위한 설정
buildscript{
ext{
springBootVersion = '2.1.7.RELEASE'
}
repositories{
mavenCentral();
jcenter();
}
dependencies{
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
- ext
- build.gradle 에서 사용하는 전역변수 설정하겠다는 의미
- repository
- 각종 프로그램들 저장되는 위치인 저장소
Gradle에 프로그램으로 필요한 라이브러리 자동 다운,통합하는 기능이 있어서 중요함 - mavenCentral()
- Maven 중앙 저장소 (Apache Maven 중앙 저장소 이용하기 위한 것)
- jcenter()
- Maven, Gradle 등 각종 빌드 도구에서 사용 가능한 공개 저장소
- 각종 프로그램들 저장되는 위치인 저장소
- dependecies
- 저장소에서 필요한 라이브러리를 사용하는데 사용할 수 있는 것이 dependencies(의존 라이브러리)
- compile ''
- 컴파일시 의존 라이브러리 (컴파일 시 라이브러리가 참조됨)
- testCompile ''
- 단위 테스트의 프로그램을 컴파일 할 때 사용됨
- classpath ''
- 지정된 라이브러리를 클래스 경로에 추가 가능
- 컴파일~실행까지 의존하는 라이브러리 지정에 사용
- 위의 코드는 spring-boot-gradle-plugin 의 2.1.7. RELEASE(springBootVersion)를 의존성으로 받겠다는 의미
선언한 플러그인 의존성 적용할지 결정하기 위한 코드
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
4개 모두 필수 플러그인
- eclipse
- intelliJ Gradle 프로젝트를 이클립스에서 import하기 위해서 추가하는 것
- org.springframework.boot
- 'spring-boot-gradle-plugin' 플러그인 이용 선언
- io.spring.dependency-management
- 스프링 부트의 의존성들 관리해주는 플러그인 (아주중요함)
나머지
group 'org.example'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile('org.springframework.boot:spring-boot-stater-web')
testCompile('org.springframework.boot:spring-boot-stater-test')
// testCompile group: 'junit', name: 'junit', version: '4.12'
- repository
- 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 정함
- mavenCentral
- 자기가 만든 라이브러리 업로드 하는 것에 많은 설정 필요함 -> 공유 안됨
- jcenter
- mavenCentral의 문제 개선해서 라이브러리 업로드 간단하게 함
- jcenter에 라이브러리 업로드하면 mavenCentral에도 업로드될 수 있게 자동화함
- dependencies
- 프로젝트 개발에 필요한 의존성들 선언하는 곳
- 버전을 명시하면 안됨
- 안정해야 org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}의 버전 따라감
- 각 라이브러리들의 버전 관리가 한 곳에 집중되고 버전 충돌 문제도 해결됨