build.gradle
-> 이 프로젝트의 플러그인 의존성 관리를 위한 설정
즉 특정 빌드 도구(Gradle)에서 제공하는 플러그인을 사용할 때
해당 플러그인이 의존하는 라이브러리 관리
// 이 프로젝트의 플러그인 의존성 관리를 위한 설정
buildscript {
ext {
springBootVersion = '2.1.9.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
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.jojoldu.book'
version '1.0.4-SNAPSHOT-'+new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.projectlombok:lombok')
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('org.springframework.boot:spring-boot-starter-mustache')
implementation('com.h2database:h2')
implementation('org.springframework.boot:spring-boot-starter-oauth2-client')
implementation('org.springframework.session:spring-session-jdbc')
implementation("org.mariadb.jdbc:mariadb-java-client")
testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation("org.springframework.security:spring-security-test")
}
우선 ext
라는 키워드는 build.gradle에서 사용하는 전역변수를 설정
하겠다는 의미
-> springBootVersion 전역 변수를 생성하고 그 값을 2.1.9.RELEASE로 하겠다는 의미
-> 스프링 부트 그레이들 플러그인의 2.1.9.RELEASE를 의존성으로 받겠다!
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply
에서는 앞서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드
-> dependency-management 플러그인은 스프링 부트의 의존성들을 관리해주는 플러그인이라 꼭 추가하고, 보통 저 4개의 플러그인은 필수 플러그인
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
gradle 5.0이상에서는 Compile 대신 implementation이나 api를 사용해야 함
repositories
는 각종 의존성(라이브러리)들을 어떠한 원격 저장소에서 받을지 정함
-> 기본적으로는 mavenCentral을 많이 사용하지만, 최근에는 업로드 난이도 때문에 jcenter도 많이 사용
dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳
-> 특정 버전을 명시하지 않아야 위에 dependencies의 classpath
에 작성한 버전을 따라감
코드 작성 후 새로고침을 할시 의존성이 잘 받아진 것을 볼 수 있음
command+shift+A를 통해 Action 검색창을 열어 share project on github
검색
-> via github를 통해 로그인 후 리파지토리 이름을 설정후 share로 동기화를 진행
위에서 .idea 디렉터리는 인텔리제이에서 프로젝트 실행 시 자동으로 생성되는 파일들이기 때문에 깃허브에 올리기에는 불필요
-> 다른 파일들만 체크 후, 커밋 메세지 작성하고 OK시 커밋과 푸시가 진행 됨
커밋하면서 대상에서 제외했던 .idea 폴더를 앞으로 모든 커밋 대상에서 제외하도록 처리하기
-> 깃에서 특정 파일 혹은 디렉토리를 관리 대상에서 제외할 때는 .gitignore 파일을 사용
-> 인텔리제이에서는 .gitignore 파일에 대한 기본적인 지원이 없지만 플러그인에서 제공
-> plugin 목록에서 .ignore을 검색 후 설치
설치 후 프로젝트 선택후 cmd+N을 통해 gitignore 파일 생성후 파일 작성
이렇게 ignore 처리된 것을 깃허브에도 반영
-> 커밋창은 command+K
메세지 작성 후 commit 버튼 클릭
깃 허브로 푸쉬 단축키(Command + Shift + K)