삶 가운데 남긴 기록 AACII.TISTORY.COM
gradle and groovy 본문
groovy
groovy는 jvm용 스크립트언어이며 gradle은 groovy를 사용한 빌드 도구입니다.
gradle 소프트웨어 내부에 groovy가 포함되어 있으므로 따로 설치 하지 않아도 됩니다만,
여기서는 groovy언어 연습용으로 설치해보도록 합시다.
그루비 다운로드 링크: https://groovy.apache.org/download.html
여기서는 윈도우10, JVM은 JDK 11, Groovy-4.X 을 기준으로 합니다.
윈도우용 설치 파일 .msi 를 다운로드 받습니다.
지원되는 JVM 버전을 확인하신 뒤 각자 JVM 버전에 맞는 Groovy를 다운 받습니다.
설치 확인: cmd 명령창에서 아래와 같이 입력해봅니다.
groovy -v
gradle
여기서 intall manually 링크를 클릭합니다.
그리고 binary-only를 클릭하여 다운로드 합니다.
압축 파일이므로 적당한 곳에 압축을 풉니다.
윈도우 제어판 시스템 고급 속성에서 아래와 같이 환경변수를 등록합니다.
시스템 변수 이름 : GRADLE_HOME
시스템 변수 값 : 압축 푼 경로 예) C:\gradle-8.5
그리고 Path값에도 아래와 같이 맨 앞에 추가합니다
Path 설정 값 : %GRADLE_HOME%\bin;
.
설치확인: cmd 입력창에서 아래와 같이 입력해봅니다.
gradle -v
예제 프로젝트 생성
프로젝트용 폴더를 하나 생성 후 cmd 창에서 그 경로로 이동합니다.
예) d:\gradle\gradle-app
아래와 같이 gradle 명령어로 java프로젝트를 생성합니다.
gradle init --type java-library
gradle은 태스크를 통해 처리를 실행합니다.
생성된 프로젝트의 파일 및 폴더 설명
- .gradle 폴더 : 태스크로 생성된 파일 등을 보관합니다.
- gradle 폴더: 그레이들 환경을 모아놓은 랩퍼 파일들이 있습니다.
- src 폴더: 프로그램 소스
- build.gradle : 프로젝트의 빌드 내용을 기술합니다. groovy를 통해 실행할 처리들을 작성합니다. plugin과 repositories저장소, dependencies 의존성들을 설정할 수 있습니다. repository의 값으로 jcenter()나 mavenCentral() 같은 것들이 설정되어 있는데 여기에 그레이들에서 사용하는 라이브러리들이 있습니다.
- gradlew, gradlew.bat : 그레이들 명렁어 파일
- settings.gradle 빌드 설정 정보를 기술한 파일입니다. 빌드를 실행하기 전에 읽기 때문에 라이브러리 등을 기술 할 수 있습니다. 루트프로젝트 이름을 지정 할 수 있습니다.
기존 그레이들 프로젝트를 이클립스에 import
우선 이클립스에 gradle 플러그인이 market place를 통해 설치되어 있어야 합니다.
build.gradle 파일을 열고 plugin 항목에 'eclipse' 항목을 추가한 뒤 그레이들 명령어로 아래와 같이 실행합니다.
gradle eclipse
그러면 이클립스 관련 파일들이 생성되고 이클립스에서 해당 프로젝트를 import 할 수 있게 됩니다.
import된 프로젝트를 우클릭한 뒤 configure 항목에서 Add Gradle Nature를 선택하면 그레이들 프로젝트로서 필요한 것들이 추가됩니다.
JCENTER 저장소
메이븐 저장소도 gradle에서 사용할 수 있지만 gradle도 중앙 저장소 jcenter가 있습니다.
그냥 저장소이기 때문에 파일만 업로드 되어 있을 뿐입니다.
그래서 메이븐과 마찬가지로 검색용 사이트가 따로 있습니다.
'DEV&OPS > Java' 카테고리의 다른 글
JAVA FileWriter를 사용하여 파일을 overwrite 와 append 저장 (0) | 2024.01.03 |
---|---|
JAVA 현재 날짜와 시간을 지정한 날짜 형식으로 출력 (0) | 2024.01.03 |
ORA-01704: JAVA ORACLE JDBC로 4000자 이상 CLOB 데이터 INSERT, UPDATE 예제 (0) | 2023.12.27 |
String 치환시 replace()와 replaceAll()의 차이 (0) | 2023.12.26 |
인텔리제이 세팅 (0) | 2023.12.21 |