목차
이클립스에 비해 인텔리제이가 갖는 장점?
- 추천기능(Smart Completion)
- 더 다양한 리팩토링과 디버깅
- 이클립스의 Git에 비해 훨 씬 높은 자유도
- 프로젝트 시작 시 인덱싱을 하여 파일 및 자원들에 대해 빠른 검색
- 자바,스프링부트 버전에 맞춘 빠른 업데이트
인텔리제이 정보 링크
- http://bit.ly/2zSt3ie - 젯브레인 한국 사용자 모임
- http://bit.ly/2OF8w8Y - 블로그
- http://bit.ly/2xZLQHc - 인프런 인텔리제이 가이드
인텔리 제이 설치
툴박스 - 젯브레인 제품 전체를 관리
https://www.jetbrains.com/toolbox
툴박스에서는 업데이트 및 버전확인가능
설치 후 메모리 사이즈 설정 4G이하 = 750mb, 이상은 메모리의 $ \frac{1}{8} 부터 \frac{1}{4} 까지 권장$
프로젝트 생성
- 스프링 이니셜라이저 를 통해서 진행하면 편하지만, build.gradle를 사용하는 이유는 코드의 역할과 이니셜라이저 외에 추가로 의존성을 추가하는 방법을 배우기 위해서이다.
- Gradle5 -> Gradle6 로 바뀌면서 교재와는 달라진 부분이 있다. 참고 블로그
- 버전 업데이트를 하기 위해서 CMD에서 기존 프로젝트가 있는 디렉토리로 이동한 후에 아래 명령어 입력
기본설정(다큘라, 키맵, 스크립트설정, 플러그인)은 별도로 건들지않고 진행,
JDK 1.8 > 1.8.0_281
new project에서 Gradle > JAVA 선택
Gradle?
Gradle
Gradle은 프로젝트를 위한 범용 빌드 도구
gradle wrapper
- 이미 존재하는 프로젝트를 새로운 환경에 설치할때 별도의 설치나 설정과정없이 곧 바로 빌드할 수 있게 하기 위함
(Java나 Gradle도 설치할 필요가 없음. 또한 로컬에 설치된 Gradle 또는 Java의 버전도 신경쓸 필요가 없음. 따라서 항상 wrapper를 사용할 것을 권장) - wrapper는 사용자가 Gradle이 설치되어 있지 않아도 Gradle tasks를 실행할 수 있도록 해주는 작은 script, jar 및 등록 정보 파일
- wrapper를 생성하면 사용자가 프로젝트를 만든 사람과 동일한 버전의 Gradle을 사용할 수 있음
생성과정에서 그룹id(로컬에서 관리할 도메인이름인가?), 아티팩트id(프로젝트명) 설정에서 아래와 같이 셋팅
그레이들 > 스프링 부트 프로젝트로 변경
build.gradle
맨 위에 아래내용 추가(프로젝트의 플러그인 의존성 관리를 위한 코드 )
//gradle 6
//plugins{ //(1)
// id 'org.springframework.boot' version '2.4.1'
// id 'io.spring.dependency-management' version '1.0.10.RELEASE' //스프링 부트의 의존성을 관리해주는 플러그인
// id 'java'
//}
buildscript{ //gradle 4
ext{
springBootVersion = '2.1.9.RELEASE'
}
repositories{
mavenCentral()
jcenter()
}
dependencies{
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
//gradle4
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //스프링 부트의 의존성을 관리해주는 플러그인
group 'com.jy.prac'
version '1.0-SNAPSHOT-'+new Date().format("yyyyMMddHHmm")
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()// 라이브러리 업로드 난이도 때문에 jcenter를 많이 쓴다.
// 최근에 나온 jcenter 라이브러리는 업로드 하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다.
// mavenCentral, jcenter 둘 다 등록하여 사용
}
dependencies { //gradle4
//gradle6 부터는 compile이 implementation으로 변경되었다.
compile('org.springframework.boot:spring-boot-starter-web')
//lombok
compile('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
//Junit5
//test{
// useJUnitPlatform()
//}
- ext {} : build.gradle 에서 사용하는 전역변수를 설정
즉, spring-boot-gradle-plugin라는 스프링 부트 그레이들 플러그인의 2.1.7RELEASE를 의존성으로 받겠다는 의미- 이렇게 관리해야지 라이브러리들의 버전이 한곳에 집중되어 관리가 편해진다.
- repositories는 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지를 결정
- 기본적으로 mavenCentral을 많이 사용하지만 라이브러리 업로드 난이도 때문에 jcenter사용
- mavenCentral : 커스텀 라이브러리를 업로드하는 것이 힘듦
- jcenter : 커스텀 라이브러리 업로드 후 mavenCentral에도 업로드 되도록 자동화 가능
- 기본적으로 mavenCentral을 많이 사용하지만 라이브러리 업로드 난이도 때문에 jcenter사용
- apply plugin : 앞서 선언한 플러그인 의존성들을 적용할 것이지를 결정
- io.spring.dependency-management 플러그인 : 스프링 부트의 의존성을 관리(꼭 추가해야함)
- 4개는 자바와 스프링 부트를 사용하기 위해 필수플러그인들이니 항상 추가한다.
- dependencies : 프로젝트 개발에 필요한 의존성들을 선언
! 인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리(일부분만 치고 자동완성키를 누르면[ctrl+space] 라이브러리목록나옴)
(1) plugins{ ... }
plugins {
id 'org.springframework.boot' version '2.4.1' // Gradle6에서는 RELEASE 삭제
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
// 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해줘야 한다.
id 'java'
}
repositories { // 각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을지를 정한다.
mavenCentral()
jcenter() // 라이브러리 업로드 난이도 때문에 jcenter를 많이 쓴다.
// 최근에 나온 jcenter 라이브러리는 업로드 하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다.
// mavenCentral, jcenter 둘 다 등록하여 사용
}
(2) test { ... }
- JUnit5를 사용하기 위해서는 필수로 선언되어야 한다.
(3) implementation, testlmplementation
- Gradle 6가 되면서 compile, testCompile은 Soft Deprecate 되었다.
- 그대신 implementation, testlmplementation 가 추가되었다.
- 이에 관련된 참고 블로그
dependencies { // 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다.
implementation(org.springframework.book:spring-boot-starter-web')
// 기존 교재에서 사용한던 compile 메소드는 Gradle6 가 되면서 implementation으로 교체하여 사용
// 하여야 한다.
implementation(org.springframework.book:spring-boot-starter-mustache')
...
...
}
오른쪽 코끼리 돌아가는 아이콘[ctrl+shift+O] 클릭하여 변경사향반영
정상적으로 생성 됨을 확인
깃, 깃허브 연동
ctrl + shift + A (VSCode의 ctrl+,)열어 share project on github 검색
깃허브 로그인 후 repository name, remote(인텔리제이에서 보여질 remote repo alias)
이후 커밋할 프로젝트 목록에서 .gradle하고 .idea 폴더는 제외 후 commit 그러면 .gitignore파일이 생성된다.
!만약 .gitignore 파일이 생성되지 않는다면 .ignore 플러그인을 설치한다.
그 후 프로젝트에서 [우클릭 > 새로 만들기 > .ignore > .gitignore] 생성된 파일에 아래내용을 추가한다.
# 프로젝트 제외 경로
.gradle
.idea
커밋창 열기 : ctrl + K
커밋창을 열어 ignore 파일을 추가한 후 커밋, 푸시하자
댓글