[AWS] gradlew가 작동하지 않는 에러로 알아보는 Gradle Wrapper 개념

Loopy·2022년 2월 28일
0

삽질기록

목록 보기
5/28
post-thumbnail

☁️ 에러 내용

오늘의 옷 프로젝트를 ec2 인스턴스에 배포하는 과정중에 생긴 에러이다. git에서 ec2 서버로 클론해온 후, 테스트가 안깨지는지 보기 위해서 ./gradlew test를 했는데 다음과 같은 에러가 났다.

gradle wrapper 가 실행되지 않는 상황이여서, gradle => wrapper 파일로 이동해서 파일 목록을 살펴보았다.

목록을 보니, 원래 같으면 있어야 할 gradle-wrapper.jar 파일이 빠져있는 것이 원인이였던 것 같다.

☁️ 해결 과정

Gradle Wrapper란 무엇인가

gradlew 는 새로운 환경에서 프로젝트를 설정할 때 javagradle 을 설치하지 않고 바로 빌드할 수 있게 해주는 역할을 하게 되는데, 이는 환경에 종속적이지 않게 된다는 큰 장점을 지니게 된다. 아래는 gradlew 를 생성하면 나오는 파일 구조이다.

├── build.gradle
├── settings.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat
  1. build gradle : 기본 빌드 파일이며, 이곳에 프로젝트의 빌드에 대한 내용을 명시한다.
  2. settings.gradle : 프로젝트의 설정 정보 파일이다. 멀티 프로젝트를 구성할 때 하위 프로젝트들과의 관계를 여기서 서술한다.
rootProject.name = "MyApp"
  1. gradle-wrapper.jar : gradlew 명령어로 프로젝트를 빌드 할 때 해당 파일을 참조하여 설정 파일을 구성하므로 새로운 환경에 대한 영향이 없다.
  2. gradlew : 유닉스용 실행 shell script이며, ./gradlew build 로 실행한다.
  3. gradlew.bat : 윈도우용 실행 batch script 이다.

문제 해결

gradle wrapper가 누락되어 발생하는 문제는 단순히 gradle wrapper 를 다시 만들어 주기만 하면 해결된다. 따라서, 프로젝트 루트 경로에서 아래의 명령어를 실행해 gradle wrapper을 생성해주었다.

1. gradle 설치

직접 다운로드 및 설치

sudo yum install wget
sudo yum install unzip

//gradle 다운
sudo wget https://services.gradle.org/distributions/gradle-7.1.1-bin.zip 

// 설치 디렉토리 생성
sudo mkdir /opt/gradle	

// 압축 해제
sudo unzip -d /opt/gradle gradle-7.1.1-bin.zip

// 링크 연결
$ sudo ln -s /opt/gradle/gradle-7.1.1 /opt/gradle/latest

환경설정

터미널에서 gradle을 입력했을 때 위에서 설치한 버전으로 연결하는 과정이다.

$ sudo nano /etc/profile.d/gradle.sh

위 명령으로 파일을 열고, 다음의 내용을 저장한다. save and exit는 ctrl+X를 눌러주면 된다.

export GRADLE_HOME=/opt/gradle/latest
export PATH=${GRADLE_HOME}/bin:${PATH}
//스크립트에 Executable 권한을 부여
$ sudo chmod +x /etc/profile.d/gradle.sh
//source 명령어로 스크립트를 로딩
$ source /etc/profile.d/gradle.sh

2. Gradle Wrap 진행

// 아래 두 파일 실행 권한 설정
$ sudo chmod 777  gradle-wrapper.properties
$ sudo chmod 777  gradlew.bat

$ gradle wrap

성공..!!

출처
https://codechacha.com/ko/installing-gradle/
https://pompitzz.github.io/blog/Java/awsEc2InstallJDK11.html

profile
개인용으로 공부하는 공간입니다. 잘못된 부분은 피드백 부탁드립니다!

0개의 댓글