gradle build tool
https://gradle.org/install/
ㄴ 압축해제, 이름파일로 옮김
ㄴ 깃 업로드 안되게끔 설정
ㄴ bin : 명령어들이 담긴 파일
ㄴ 경로 복사
ㄴ D:\박세현\gradle-8.7\bin
ㄴ 환경변수에 복붙용
ㄴ 환경변수 path
ㄴ 어떤 경로이든간에 접근가능하게 설정하는 것
ㄴ 어떤 경로이든 간에 명령어 쓸 수 있도록
gradle --version
: 버전 확인 gradle tasks
: 그레들 명령어 기억 안 날 때 확인용예시) gradle --version
참고)
메이븐
mvn archetype:generate
그래들
gradle init [--type 타입명]
ㄴ 파일 경로이동
ㄴ 엔터 : 기본값 어플리케이션으로 한다는 말
ㄴ 엔터 : 기본값 자바로 한다는 말
ㄴ 자바 17버전으로 한다는 말
ㄴ 엔터
ㄴ 그루비 2번 엔터
다시다시...ㅜ
ㄴ 파일 생성하고 그래들 생성해야 함
ㄴ 이것 때문에 다시다시ㅠ
ㄴ 짠
ㄴ 래핑되어있는 그래들 명령어
ㄴ 다른 피씨에서 작업할 때 다른 그래들 버전일 수 있는데 그래들w 파일이 생성했을 시점의 그래들 버전그대로 명령어 넣어줌
ㄴ 다른 피씨에서 해도 ㅇㅋㅇㅋ하게 해준다
ㄴ gradlew run
ㄴ 사용할 수 있는 그래들 명령어
ㄴ sync : 의존성이나 빌드.그래들 파일 변경 있으면 업데이트(?)해주는 기능
ㄴ 설정파일
ㄴ 메이븐에서의 pom.xml이랑 동일
ㄴ 명령어 입력 터미널 : cmd
ㄴ 이렇게도 명령어 입력 가능
ㄴ 앱이라는 폴더 없는거 빼고는 그래들 명령어로 그래들 프로젝트 생성한거랑 동일하게 만들어 짐
ㄴ 8.7 : 시스템에 설치된 그래들 버전
ㄴ 8.5 : 인텔리제이 내에 설치된 그래들 버전
-> 버전 불일치로 오류 뜨는 경우 많음
-> 인텔리제이 내에 설치된 그래들 버전으로 통일하자
참고)
메이븐 mvn package : compile -> test -> 배포
그래들 gradle build : compile -> test -> 배포
예시)
ㄴ run했을 때보다 파일이 더 많넹
ㄴ 메이븐의 타깃파일과 동일한 파일
= 배포파일(jar파일)
예시) 테스트 실패 상황 연출
ㄴ 테스트 실패해서 배포파일 생성 실패
ㄴ 컴파일 -> 테스트(x) -> 배포(x)
-> 테스트 실패해도 배포 될수 있게 하는 법 없을 까
-> 테스트 과정 생략하고 배포하는 명령어 : gradle jar
예시) gradle run
ㄴ 컴파일 됨
ㄴ 메이븐은 타깃 폴더에 컴파일된 클래스파일들이 있음
ㄴ 그래들은 build 파일에 컴파일된 클래스파일들이 있음
ㄴ assemble : jar파일 생성
ㄴ build : 메이븐에서 패키지 생성과 동일한 개념
참고) gradle bootjar : 스프링 부트에서...
예시)
ㄴ 테스트 과정없이 배포파일 생성
ㄴ 벗 테스트하고 배포하는게 더 안정감 있음...
예시) gradle clean
ㄴ build 폴더 삭제 됨
sourceCompatibity : 자바버전
ext {
// 전역변수
}
def 변수명 = 값 -> 지역변수
참고) 메이븐
<dependency> ... <scope></scope> <dependency>
scope
- compile : 컴파일시에 포함, 배포시 포함
- runtime : 컴파일시에x, 실행 중 포함
- provided : 개발시에만 필요, 배포시에 배제
- test : 테스트시에 필요
예시)
ㄴ 메이븐의 compile과 비슷
ㄴ compile, api은 속도가 느려서 implementation을 더 많이 씀
ㄴ 메이븐의 provided와 비슷
ㄴ 메이븐의 runtime과 비슷
예시) 의존성 넣기_롬복
ㄴ 그루비
그룹 네임 버전 각각 명시
ㄴ 그루비 숏
compileOnly 'org.projectlombok:lombok:1.18.32'
: 그룹 네임 버전 한번에 명시
ㄴ 메이븐의 prvided와 거의 동일한 기능
ㄴ 싱크
예시)
ㄴ 자바버전 : 17
ㄴ ext : 전역변수라서 어디든 접근 가능
ㄴ 변수 인식할려면 ""으로 바꿔줘야 함
ㄴ def : 지역변수
예시) test환경에선 롬복 쓰는 법
ㄴ 메이븐은 provided하면 main이든test든 롬복 애노테이션 다 되는데
ㄴ 그레이브는 이렇게 따로 각각 해줘야함
ㄴ 이제 테스트에서도 롬복 애노테이션 쓸 수 있군