::: IT인터넷 :::

sbt 1.9.0 버전과 Scala 2.12.18 설치하기

곰탱이푸우 2023. 7. 17. 08:20
로컬의 Maven 저장소 설정이 마무리 되면, 개발하는 단말에 scala 개발 환경을 구성한다.
Nexus에 Maven 저장소를 설정하는 방법은 아래 포스팅을 참고한다.
Scala 언어는 Java를 기반으로 작성되었지만, 빌드는 sbt (simple build tool)을 사용하여 진행한다.

 

JetBrains의 IntelliJ IDE를 사용하는 경우 Scala 플러그인을 통해 sbt와 scala 사용이 가능하다.
따라서 IntelliJ를 사용하는 경우 설치를 하지 않아도 된다.
 
그러나 아래와 같은 경우 sbt를 설치해두는 것이 편리하다.
  • 빌드머신 같이 IDE를 사용하지 않는 경우
  • IDE를 실행하지 않고 로컬 명령으로 사용하려는 경우
 
구글링해보면 대부분 bintray (Jfrog) 저장소에서 다운로드 하는 방법을 소개하고 있다.
그러나 bintray는 2021년 (최종 2022년)에 서비스가 중단되어 다운로드하기 어렵다.
따라서 bintray 사용하지 않고 설치하는 방법을 중심으로 정리한다.
아래 모든 내용은 리눅스 환경이며, 윈도우 운영체제인 경우 WSL에서 진행한다.
 
 

Spark과 Scala, sbt 버전 확인

Spark 3.2.3은 아래와 같은 버전을 지원한다.
  • Java (JDK) - 8, 11 버전
  • Scala - 2.12, 2.13 버전 (2.11 버전은 3.0.0 부터 제거)
 
자세한 내용은 아래 문서를 참고한다.
따라서 Scala는 2.12 또는 2.13 버전을 사용해야 한다.
Spark 3.2.3의 Scala API는 2.12 버전을 사용했으므로, Scala 2.12 버전을 선택하여 최대한 같은 버전을 사용한다.

 

Scala를 빌드하기 위한 sbt 최소 버전은 Scala 버전따라 조금씩 다르다.
구분
sbt 버전
URL
Scala 2.13
최소 1.2.8 버전 이상
(또는 0.13.18 버전 사용)
Scala 2.12
최소 0.13.13 버전 이상
 
scala 2.12 버전을 사용하는 경우 sbt는 0.13.13 버전 이상이면 충분하다.
따라서 1.x 버전 중 최신 배포판인 sbt 1.9.0 버전으로 진행하고, 향후 필요하면 0.13.18 버전으로 변경한다.
 
IntelliJ의 경우 Scala 플러그인을 설치하고, 프로젝트를 생성하면서 Scala와 sbt 버전 선택이 가능하다.
따라서 IntelliJ 환경인 경우 Scala와 sbt 설치는 필요에 따라 진행한다.
 
 

OpenJDK 설치

Java 기반 언어인 Scala를 사용하기 위해 Java SDK를 설치한다.
Oracle 배포판은 라이선스 이슈가 있으므로, OpenJDK를 사용하여 설치한다.
Spark 3.2.3 버전은 JDK 8과 11 버전을 지원한다.
그러나 이미 구성한 하둡 환경이 JDK 8 버전을 사용하므로 JDK 8을 사용한다.
 
OpenJDK는 apt로 쉽게 설치 가능하다.
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
$ readlink -f $(which java)
/usr/lib/jvm/java-8-openjdk-amd64/bin/java

$ sudo vi ~/.bashrc
# 아래 내용을 추가한다.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

# 적용한 환경 변수 적용
$ source ~/.bashrc
$ java -version
 
아래와 같이 Java 버전이 출력되면 정상이다.

 

 

sbt 설치

Scala 프로젝트를 빌드하기 위한 sbt를 설치한다.
 
IntelliJ를 사용하는 경우 Scala 플러그인을 설치하면, 프로젝트를 생성하면서 사용할 sbt 버전을 선택할 수 있다.
따라서 IntelliJ를 사용하는 개발 장비에서는 경우 설치하지 않아도 무방하다.
 
터미널에서 빌드, 패키징을 수행하려면 로컬에 직접 설치해서 사용하는 것이 편리하다.
 
아래 공식 사이트에 설치 방법이 정리 되어 있다.
 
그러나 개인적으로 apt 저장소 추가하는 것은 선호하지 않으므로 직접 deb 파일을 다운로드하여 설치한다.
폐쇄망인 경우 아래 방법으로 deb 파일을 다운로드하고 설치할 PC에 복사하여 설치한다.
 
 

설치 파일 다운로드

scala-sbt 저장소 주소로 접근하면 jfrog.io 사이트로 리다이렉트 된다.
 
아래 저장소에서 사용할 sbt 버전의 설치 파일을 다운로드하면 된다.
 
1.9.0 버전을 설치할 것이므로 해당 버전의 deb 파일을 다운로드 한다.
$ wget https://scala.jfrog.io/artifactory/debian/sbt-1.9.0.deb
 
 
파일은 약 1MB 정도로 크지 않다.

 

dpkg 명령어로 다운로드한 deb 파일을 설치한다.
# sudo dpkg -i /경로/sbt-1.2.8.deb
$ sudo dpkg -i ./sbt-1.2.8.deb
 
아래와 같이 설치된다.

 

sbt 명령어

sbt의 명령어 중 자주 사용하는 명령어는 다음과 같다.
구분
내용
sbt update
프로젝트가 사용하는 라이브러리 다운로드
sbt reload
build.sbt 수정 후 재실행
sbt clean
target 디렉토리에 생성 된 산출물 삭제
sbt compile
프로젝트의 소스코드 컴파일
sbt test
src/test에 작성한 테스트 실행
sbt package
배포를 위한 jar 파일 생성
sbt publish
원격저장소에 jar 파일 업로드 (저장소 설정 필요)
sbt pulish-local
로컬 ivy 캐시에 jar 파일 설치
 
자세한 내용은 아래 문서를 참고한다.
 

Scala 설치

IntelliJ를 사용하는 경우 Scala 플러그인을 설치하면, 프로젝트를 생성하면서 사용할 Scala 버전을 선택할 수 있다.
따라서 IntelliJ를 사용하는 개발 장비에서는 경우 설치하지 않아도 무방하다.
 
로컬에서 Scala를 사용할 일이 있는 경우를 위해 정리한다.
 

설치 파일 다운로드

Scala 2.12.18 버전은 아래 경로에서 다운로드 할 수 있다.
스크롤을 아래로 내리면 deb 파일의 다운로드 링크를 찾을 수 있다.

 

해당 deb 파일을 다운로드한다.
$ wget https://downloads.lightbend.com/scala/2.12.18/scala-2.12.18.deb
 
파일 크기는 약 147MB 정도이다.

 

 

dpkg 명령어로 다운로드한 deb 파일을 설치한다.
# sudo dpkg -i /경로/scala-2.12.18.deb
$ sudo dpkg -i ./scala-2.12.18.deb
 
아래와 같이 설치된다.

 

scala는 /usr/share/scala 경로에 설치되며, 실행 파일은 /usr/bin 경로에 생성되므로 바로 실행이 가능하다.