Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Scala CLIのusing libはusing depになりました

tl;dr

  • これからは、 using lib のかわりに using dep って書いてね
  • 後方互換性は保たれます

本編

Scalaのスクリプティングツールとして愛用されているScala CLIですが、このたび2月22日にv0.2.0がリリースされ、さらに3月16日にv0.2.1がリリースされたようです。そしてつい先程v1.0.0-RC1が作成され、Scalaの標準的ツールとしての地位に上るための準備に奔走しているようです。*1

そのv0.2.0にて、usingディレクティブの用語が一部変更されました。端的には、以下の変更が行なわれました。

  • //> using lib//> using depとリネームする。
  • 後方互換性として//> using libの利用も当分サポートする。

これから新規にScala Scriptを作成する際は、ライブラリ依存性の指定としてusing depを使うようにするとよいでしょう。後方互換性があるため、過去に作成されたScala Scriptの修正を行うかどうかは利用者に委ねられています。

そもそもusingディレクティブって何

Scala CLIでは、これまでのScalaプロジェクトで標準的に行なわれてきたようにbuild.sbtに依存ライブラリを定義するのではなく、スクリプト上に直接依存ライブラリを定義します。

//> using scala "3.1"
//> using dep "オーガナイゼーション名::アーティファクト名:バージョン"

// code ...

具体的には、以下のような定義を行います。

//> using lib "org.apache.spark::spark-core:3.3.1"
//> using lib "org.apache.spark::spark-sql:3.3.1"
//> using lib "org.apache.spark::spark-mllib:3.3.1"

こうすることで単体のスクリプトファイルでScalaのアプリケーションを簡単に作成できます。

ちなみにこの表記はScalaのライブラリ検索サイトであるScaladexから直接コピーしてくることができるので、覚えておくと便利です。

バージョン詳細の画面にScala CLIのタブが生えている

そもそもScala Scriptって何

はじめよう!

tanishiking24.hatenablog.com

*1:scala-cilは将来的にscalaコマンドを叩いたときのデフォルトREPLとして採用されることが決定しています。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?