From 5c5c317bb1eb802ce15a78ab2b61ab679708a99d Mon Sep 17 00:00:00 2001 From: i10416 Date: Fri, 16 Sep 2022 23:11:42 +0900 Subject: [PATCH 01/12] draft: add sbt usage page --- src/sbt-usage.md | 176 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 src/sbt-usage.md diff --git a/src/sbt-usage.md b/src/sbt-usage.md new file mode 100644 index 00000000..b9c639bb --- /dev/null +++ b/src/sbt-usage.md @@ -0,0 +1,176 @@ +# sbt の基本的な使い方 + +## About + +sbt は Scala のコードで使われているデファクトのビルドツールです. + +sbt は以下のような機能を担います. + +- Scala のコンパイラの設定(バージョンやオプションなど)の管理・クロスビルド機能 +- ライブラリをインストールしたりライブラリを公開したりするパッケージマネージャーとして機能 +- ビルドやテストの処理を定義・実行するための機能 +- プラグインによるさまざまなタスクの自動化・簡略化の機能 + + +## Scala のバージョン管理 + +### 単一の Scala バージョンを管理する場合 + +Scala のアプリケーションを書く場合、例えばウェブサーバーや CLI ツールを作る場合、特定の Scala のバージョンで書くのが一般的です. + +例えば現在のディレクトリにある Scala アプリケーションの Scala バージョンを `3.2.0` に指定するには +`build.sbt` に以下のように書きます. + + +```scala +lazy val app = project.in(file(".")) + .settings( + scalaVersion := "3.2.0" + ) +``` + +### 複数の Scala バージョンを管理する場合 + +他の Scala アプリケーションやライブラリから利用するライブラリを書く際は、しばしば複数の Scala バージョン向けに +ライブラリをビルドします. + +例えば、Scala 2.13.8 と Scala 3.2.0 向けにライブラリをビルドするには次のように書きます. + +```scala +lazy val lib = project.in(file(".")) + .settings( + scalaVersion := "2.13.8", + crossScalaVersions := Seq("2.13.8","3.2.0") + ) +``` + +sbt コンソールから `++2.13.8 ` とすることで Scala のバージョンを指定して sbt のコマンドを実行したり、 +`++` とすることで crossScalaVersions に指定したすべての Scala バージョンでコマンドを実行したりすることができます. + + +### コンパイラオプションの設定 + +sbt からは Java や Scala のオプションを設定できます. + +例えば `build.sbt` に以下のように設定することで Scala のコンパイラオプションを変更して deprecated な機能を使っている場合に警告を表示します. + +```scala +scalacOptions ++= Seq( +"-deprecation", +) +``` + + +同様に Java のオプションを指定できます. 以下の例では比較的新しい Java で incubator モジュールを利用する設定を Java Options に渡しています. +```scala +javaOptions ++= Seq( + "--add-modules=jdk.incubator.foreign", + "--enable-native-access=ALL-UNNAMED" +) +``` + + +## パッケージの管理 + +### Scala ライブラリのインストール + +現在のディレクトリにある Scala アプリケーションから Scala のライブラリを利用する場合、`build.sbt` に以下のように書きます. + +`"パッケージのネームスペース" %% "パッケージ名" % "バージョン"` という形式です. + +```scala +lazy val app = project.in(file(".")) + .settings( + scalaVersion := "3.2.0", + libraryDependencies ++= Seq( + "com.typelevel" %% "cats-core" % "2.7.0" + ) + ) +``` + +上の例では Scala 3 向けにビルドされた cats というライブラリのバージョン 2.7.0 を追加しています. + +このように書けば `src/main/scala` 以下にある Scala ファイルから下のようにライブラリをインポートして利用できます. + +```scala +import cats._ +import cats.syntax._ +import cats.implicits._ +``` + +### Java ライブラリを追加する + +Scala からは Java のライブラリを利用することができます. アプリケーションに Java ライブラリを追加する場合は以下のように書きます. +Scala のライブラリを追加する場合と違ってネームスペースとライブラリの間にある `%` が1つになっていることに注意してください. + +```scala +lazy val app = project.in(file(".")) + .settings( + scalaVersion := "3.2.0", + libraryDependencies ++= Seq( + "log4j" % "log4j" % "1.2.17" + ) + ) +``` + +### JVM以外のプラットフォームからライブラリを利用する + +Scala アプリケーションを JVM 向けだけでなく Scala.js や Scala Native 向けにもビルドする場合はライブラリも Scala.js や Scala Native +向けにビルドされたものを利用する必要があります. + +以下の例は、現在のディレクトリにある Scala.js アプリケーションから Scala.js 向けにビルドされたライブラリを利用する例です. + +`libraryDependencies` に与えるライブラリの `%%` が `%%%` になっていることに注意しましょう. +このように書くことで Scala.js 向けにビルドする際は Scala.js 用のライブラリを Scala Native 向けにビルドする際は Scala Native 向けの +ライブラリを解決してくれます. + +```scala +lazy val app = project.in(file(".")) + .enablePlugins(ScalaJSPlugin) + .settings( + libraryDependencies ++= Seq( + "com.typelevel" %%% "cats-core" % "2.7.0" + ) + ) +``` + +### テスト時に利用するライブラリを指定する + +アプリケーションやライブラリとしては利用しないがテストで利用するライブラリが必要な場合は次のように書きます. +ライブラリ名の後ろに `% Test` があることに注意してください. +このように指定したライブラリはテスト用のコード(一般的には`src/test/scala` 以下にある Scala コード)からしか利用できず +リリースされるアプリケーションやライブラリには含まれません. JavaScript の package.json に含まれる +`DevDependencies` のようなものと考えるとわかりやすいかもしれません. + +```scala +lazy val app = project.in(file(".")) + .settings( + libraryDependencies ++= Seq( + "com.typelevel" %% "cats-core" % "2.7.0", + "org.scalameta" %% "munit" % "1.0.0-M6" % Test, + ) + ) +``` + +## sbt プラグイン + +sbt ではプラグインを利用してさまざまなタスクを自動化できます. project/plugins.sbt ファイルからプラグインを追加できます. + +試しに、Scala のコードフォーマッター scalafmt を sbt から利用するためのプラグインを project/plugins.sbt に追加してみましょう. + +```scala +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") +``` + +これで ターミナル または sbt コンソールから scalafmt, scalafmtSbt, scalafmtCheck, scalafmtAll などのコマンドが使えるようになります. + +```scala +sbt scalafmt +``` + +他にも +- ライブラリのリリースを自動化する `sbt-ci-release` +- アプリケーションをさまざまな形式でパッケージングする `sbt-native-packager` +- Scala.js や Scala Native のクロスビルドを簡単にする `sbt-crossproject` + +などさまざまなプラグインがあります. \ No newline at end of file From 603ee4461cfe0f4936b871b29be0dec010260d12 Mon Sep 17 00:00:00 2001 From: 110416 Date: Thu, 22 Sep 2022 02:31:25 +0900 Subject: [PATCH 02/12] Update src/sbt-usage.md Co-authored-by: kenji yoshida <6b656e6a69@gmail.com> --- src/sbt-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index b9c639bb..8c92d5fa 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -7,7 +7,7 @@ sbt は Scala のコードで使われているデファクトのビルドツー sbt は以下のような機能を担います. - Scala のコンパイラの設定(バージョンやオプションなど)の管理・クロスビルド機能 -- ライブラリをインストールしたりライブラリを公開したりするパッケージマネージャーとして機能 +- ライブラリをインストールしたりライブラリを公開したりするパッケージマネージャーとしての機能 - ビルドやテストの処理を定義・実行するための機能 - プラグインによるさまざまなタスクの自動化・簡略化の機能 From 6e54b851a3b9d8f417a0990a4f463566a8d09e2d Mon Sep 17 00:00:00 2001 From: 110416 Date: Thu, 22 Sep 2022 02:33:19 +0900 Subject: [PATCH 03/12] Update src/sbt-usage.md --- src/sbt-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 8c92d5fa..2ac3eadb 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -76,7 +76,7 @@ javaOptions ++= Seq( 現在のディレクトリにある Scala アプリケーションから Scala のライブラリを利用する場合、`build.sbt` に以下のように書きます. -`"パッケージのネームスペース" %% "パッケージ名" % "バージョン"` という形式です. +`"パッケージのグループID" %% "アーティファクトID" % "バージョン"` という形式です. ```scala lazy val app = project.in(file(".")) From 1d25063d705977157be368642c5d90f37cc2b03e Mon Sep 17 00:00:00 2001 From: 110416 Date: Thu, 22 Sep 2022 02:52:33 +0900 Subject: [PATCH 04/12] Apply suggestions from code review --- src/sbt-usage.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 2ac3eadb..8e54cd47 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -44,8 +44,8 @@ lazy val lib = project.in(file(".")) ) ``` -sbt コンソールから `++2.13.8 ` とすることで Scala のバージョンを指定して sbt のコマンドを実行したり、 -`++` とすることで crossScalaVersions に指定したすべての Scala バージョンでコマンドを実行したりすることができます. +sbt シェルから `++2.13.8 ` とすることで Scala のバージョンを指定して sbt のコマンドを実行したり、 +`+` とすることで crossScalaVersions に指定したすべての Scala バージョンでコマンドを実行したりすることができます. ### コンパイラオプションの設定 @@ -162,7 +162,7 @@ sbt ではプラグインを利用してさまざまなタスクを自動化で addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") ``` -これで ターミナル または sbt コンソールから scalafmt, scalafmtSbt, scalafmtCheck, scalafmtAll などのコマンドが使えるようになります. +これで ターミナル または sbt シェルから scalafmt, scalafmtSbt, scalafmtCheck, scalafmtAll などのコマンドが使えるようになります. ```scala sbt scalafmt From df3a2e129a18504644aad93e10a960d5c2711eb2 Mon Sep 17 00:00:00 2001 From: i10416 Date: Thu, 22 Sep 2022 13:11:03 +0900 Subject: [PATCH 05/12] chore: fmt --- .vscode/settings.json | 5 +++++ src/sbt-usage.md | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..32cfc61d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.watcherExclude": { + "**/target": true + } +} \ No newline at end of file diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 8e54cd47..a61f5a18 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -56,7 +56,7 @@ sbt からは Java や Scala のオプションを設定できます. ```scala scalacOptions ++= Seq( -"-deprecation", + "-deprecation", ) ``` @@ -83,7 +83,7 @@ lazy val app = project.in(file(".")) .settings( scalaVersion := "3.2.0", libraryDependencies ++= Seq( - "com.typelevel" %% "cats-core" % "2.7.0" + "com.typelevel" %% "cats-core" % "2.8.0" ) ) ``` @@ -93,9 +93,7 @@ lazy val app = project.in(file(".")) このように書けば `src/main/scala` 以下にある Scala ファイルから下のようにライブラリをインポートして利用できます. ```scala -import cats._ -import cats.syntax._ -import cats.implicits._ +import cats.syntax.all._ ``` ### Java ライブラリを追加する @@ -124,12 +122,20 @@ Scala アプリケーションを JVM 向けだけでなく Scala.js や Scala このように書くことで Scala.js 向けにビルドする際は Scala.js 用のライブラリを Scala Native 向けにビルドする際は Scala Native 向けの ライブラリを解決してくれます. +project/plugins.sbt にプラグインを追加します. + +```scala +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.11.0") +``` + +build.sbt を次のように書きます. + ```scala lazy val app = project.in(file(".")) .enablePlugins(ScalaJSPlugin) .settings( libraryDependencies ++= Seq( - "com.typelevel" %%% "cats-core" % "2.7.0" + "com.typelevel" %%% "cats-core" % "2.7.0" ) ) ``` From d8e57ef508cde0e7a8caae484bd6cb4b4e65ec07 Mon Sep 17 00:00:00 2001 From: i10416 Date: Thu, 22 Sep 2022 13:11:53 +0900 Subject: [PATCH 06/12] chore: rm local config --- .vscode/settings.json | 5 ----- src/sbt-usage.md | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 32cfc61d..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.watcherExclude": { - "**/target": true - } -} \ No newline at end of file diff --git a/src/sbt-usage.md b/src/sbt-usage.md index a61f5a18..e23e9ce8 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -88,7 +88,7 @@ lazy val app = project.in(file(".")) ) ``` -上の例では Scala 3 向けにビルドされた cats というライブラリのバージョン 2.7.0 を追加しています. +上の例では Scala 3 向けにビルドされた cats というライブラリのバージョン 2.8.0 を追加しています. このように書けば `src/main/scala` 以下にある Scala ファイルから下のようにライブラリをインポートして利用できます. @@ -106,7 +106,7 @@ lazy val app = project.in(file(".")) .settings( scalaVersion := "3.2.0", libraryDependencies ++= Seq( - "log4j" % "log4j" % "1.2.17" + "log4j" % "log4j" % "1.2.17" ) ) ``` From f5f0556eefd92a07dafcada82a3e92829ae55224 Mon Sep 17 00:00:00 2001 From: i10416 Date: Thu, 22 Sep 2022 13:14:33 +0900 Subject: [PATCH 07/12] improve: mention official doc --- src/sbt-usage.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index e23e9ce8..5002026a 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -11,6 +11,7 @@ sbt は以下のような機能を担います. - ビルドやテストの処理を定義・実行するための機能 - プラグインによるさまざまなタスクの自動化・簡略化の機能 +以下では sbt の基本的な機能を紹介しますが、詳細は[公式ドキュメント](https://www.scala-sbt.org/1.x/docs/ja/Getting-Started.html)を参照してください. ## Scala のバージョン管理 From 2b1e1007534a04d6ee2e3b90f092c315c514195f Mon Sep 17 00:00:00 2001 From: i10416 Date: Thu, 22 Sep 2022 13:27:57 +0900 Subject: [PATCH 08/12] fix: address textlint warnings --- src/sbt-usage.md | 88 +++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 5002026a..1a700634 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -1,26 +1,26 @@ -# sbt の基本的な使い方 +# sbtの基本的な使い方 ## About -sbt は Scala のコードで使われているデファクトのビルドツールです. +sbtはScalaのコードで使われているデファクトのビルドツールです。 -sbt は以下のような機能を担います. +sbtは以下のような機能を担います。 -- Scala のコンパイラの設定(バージョンやオプションなど)の管理・クロスビルド機能 +- Scalaのコンパイラの設定(バージョンやオプションなど)の管理・クロスビルド機能 - ライブラリをインストールしたりライブラリを公開したりするパッケージマネージャーとしての機能 - ビルドやテストの処理を定義・実行するための機能 - プラグインによるさまざまなタスクの自動化・簡略化の機能 -以下では sbt の基本的な機能を紹介しますが、詳細は[公式ドキュメント](https://www.scala-sbt.org/1.x/docs/ja/Getting-Started.html)を参照してください. +以下ではsbtの基本的な機能を紹介しますが、詳細は[公式ドキュメント](https://www.scala-sbt.org/1.x/docs/ja/Getting-Started.html)を参照してください。 -## Scala のバージョン管理 +## Scalaのバージョン管理 -### 単一の Scala バージョンを管理する場合 +### 単一のScalaバージョンを管理する場合 -Scala のアプリケーションを書く場合、例えばウェブサーバーや CLI ツールを作る場合、特定の Scala のバージョンで書くのが一般的です. +Scalaのアプリケーションを書く場合、例えばウェブサーバーやCLIツールを作る場合、特定のScalaのバージョンで書くのが一般的です。 -例えば現在のディレクトリにある Scala アプリケーションの Scala バージョンを `3.2.0` に指定するには -`build.sbt` に以下のように書きます. +例えば現在のディレクトリにあるScalaアプリケーションのScalaバージョンを`3.2.0`に指定するには +`build.sbt` に以下のように書きます。 ```scala @@ -32,10 +32,9 @@ lazy val app = project.in(file(".")) ### 複数の Scala バージョンを管理する場合 -他の Scala アプリケーションやライブラリから利用するライブラリを書く際は、しばしば複数の Scala バージョン向けに -ライブラリをビルドします. +他のScalaアプリケーションやライブラリから利用するライブラリを書く際は、しばしば複数のScalaバージョン向けにライブラリをビルドします。 -例えば、Scala 2.13.8 と Scala 3.2.0 向けにライブラリをビルドするには次のように書きます. +例えば、Scala 2.13.8とScala 3.2.0向けにライブラリをビルドするには次のように書きます。 ```scala lazy val lib = project.in(file(".")) @@ -45,15 +44,15 @@ lazy val lib = project.in(file(".")) ) ``` -sbt シェルから `++2.13.8 ` とすることで Scala のバージョンを指定して sbt のコマンドを実行したり、 -`+` とすることで crossScalaVersions に指定したすべての Scala バージョンでコマンドを実行したりすることができます. +sbtシェルから `++2.13.8 ` とすることでScalaのバージョンを指定してsbtのコマンドを実行したり、 +`+` とすることで`crossScalaVersions`に指定したすべてのScalaバージョンでコマンドを実行したりすることができます。 ### コンパイラオプションの設定 -sbt からは Java や Scala のオプションを設定できます. +sbtからはJavaやScalaのオプションを設定できます。 -例えば `build.sbt` に以下のように設定することで Scala のコンパイラオプションを変更して deprecated な機能を使っている場合に警告を表示します. +例えば `build.sbt` に以下のように設定することでScalaのコンパイラオプションを変更してdeprecatedな機能を使っている場合に警告を表示します。 ```scala scalacOptions ++= Seq( @@ -62,7 +61,7 @@ scalacOptions ++= Seq( ``` -同様に Java のオプションを指定できます. 以下の例では比較的新しい Java で incubator モジュールを利用する設定を Java Options に渡しています. +同様にJavaのオプションを指定できます。以下の例では比較的新しいJavaでincubatorモジュールを利用する設定をJava Optionsに渡しています・ ```scala javaOptions ++= Seq( "--add-modules=jdk.incubator.foreign", @@ -73,11 +72,11 @@ javaOptions ++= Seq( ## パッケージの管理 -### Scala ライブラリのインストール +### Scalaライブラリのインストール -現在のディレクトリにある Scala アプリケーションから Scala のライブラリを利用する場合、`build.sbt` に以下のように書きます. +現在のディレクトリにあるScalaアプリケーションからScalaのライブラリを利用する場合、`build.sbt` に以下のように書きます。 -`"パッケージのグループID" %% "アーティファクトID" % "バージョン"` という形式です. +`"パッケージのグループID" %% "アーティファクトID" % "バージョン"` という形式です。 ```scala lazy val app = project.in(file(".")) @@ -89,18 +88,18 @@ lazy val app = project.in(file(".")) ) ``` -上の例では Scala 3 向けにビルドされた cats というライブラリのバージョン 2.8.0 を追加しています. +上の例ではScala 3向けにビルドされたcatsというライブラリのバージョン2.8.0を追加しています。 -このように書けば `src/main/scala` 以下にある Scala ファイルから下のようにライブラリをインポートして利用できます. +このように書けば `src/main/scala` 以下にあるScalaファイルから下のようにライブラリをインポートして利用できます。 ```scala import cats.syntax.all._ ``` -### Java ライブラリを追加する +### Javaライブラリを追加する -Scala からは Java のライブラリを利用することができます. アプリケーションに Java ライブラリを追加する場合は以下のように書きます. -Scala のライブラリを追加する場合と違ってネームスペースとライブラリの間にある `%` が1つになっていることに注意してください. +ScalaからはJavaのライブラリを利用することができます。 アプリケーションにJavaライブラリを追加する場合は以下のように書きます。 +Scalaのライブラリを追加する場合と違ってネームスペースとライブラリの間にある `%` が1つになっていることに注意してください。 ```scala lazy val app = project.in(file(".")) @@ -114,22 +113,21 @@ lazy val app = project.in(file(".")) ### JVM以外のプラットフォームからライブラリを利用する -Scala アプリケーションを JVM 向けだけでなく Scala.js や Scala Native 向けにもビルドする場合はライブラリも Scala.js や Scala Native -向けにビルドされたものを利用する必要があります. +ScalaアプリケーションをJVM向けだけでなくScala.jsやScala Native向けにもビルドする場合はライブラリもScala.jsやScala Native向けにビルドされたものを利用する必要があります。 -以下の例は、現在のディレクトリにある Scala.js アプリケーションから Scala.js 向けにビルドされたライブラリを利用する例です. +以下の例は、現在のディレクトリにあるScala.jsアプリケーションからScala.js向けにビルドされたライブラリを利用する例です。 -`libraryDependencies` に与えるライブラリの `%%` が `%%%` になっていることに注意しましょう. -このように書くことで Scala.js 向けにビルドする際は Scala.js 用のライブラリを Scala Native 向けにビルドする際は Scala Native 向けの -ライブラリを解決してくれます. +`libraryDependencies` に与えるライブラリの `%%` が `%%%` になっていることに注意しましょう。 +このように書くことでScala.js向けにビルドする際はScala.js用のライブラリをScala Native向けにビルドする際はScala Native向けの +ライブラリを解決してくれます。 -project/plugins.sbt にプラグインを追加します. +project/plugins.sbtにプラグインを追加します。 ```scala addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.11.0") ``` -build.sbt を次のように書きます. +build.sbtを次のように書きます。 ```scala lazy val app = project.in(file(".")) @@ -143,11 +141,11 @@ lazy val app = project.in(file(".")) ### テスト時に利用するライブラリを指定する -アプリケーションやライブラリとしては利用しないがテストで利用するライブラリが必要な場合は次のように書きます. -ライブラリ名の後ろに `% Test` があることに注意してください. -このように指定したライブラリはテスト用のコード(一般的には`src/test/scala` 以下にある Scala コード)からしか利用できず -リリースされるアプリケーションやライブラリには含まれません. JavaScript の package.json に含まれる -`DevDependencies` のようなものと考えるとわかりやすいかもしれません. +アプリケーションやライブラリとしては利用しないがテストで利用するライブラリが必要な場合は次のように書きます。 +ライブラリ名の後ろに `% Test` があることに注意してください。 +このように指定したライブラリはテスト用のコード(一般的には`src/test/scala` 以下にあるScalaコード)からしか利用できず +リリースされるアプリケーションやライブラリには含まれません。JavaScriptのpackage.jsonに含まれる +`DevDependencies` のようなものと考えるとわかりやすいかもしれません。 ```scala lazy val app = project.in(file(".")) @@ -159,17 +157,17 @@ lazy val app = project.in(file(".")) ) ``` -## sbt プラグイン +## sbtプラグイン -sbt ではプラグインを利用してさまざまなタスクを自動化できます. project/plugins.sbt ファイルからプラグインを追加できます. +sbtではプラグインを利用してさまざまなタスクを自動化できます。project/plugins.sbtファイルからプラグインを追加できます。 -試しに、Scala のコードフォーマッター scalafmt を sbt から利用するためのプラグインを project/plugins.sbt に追加してみましょう. +試しに、Scalaのコードフォーマッターscalafmtをsbtから利用するためのプラグインをproject/plugins.sbtに追加してみましょう。 ```scala addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") ``` -これで ターミナル または sbt シェルから scalafmt, scalafmtSbt, scalafmtCheck, scalafmtAll などのコマンドが使えるようになります. +これでターミナルまたはsbtシェルから`scalafmt`・`scalafmtSbt`・`scalafmtCheck`・`scalafmtAll`などのコマンドが使えるようになります。 ```scala sbt scalafmt @@ -178,6 +176,6 @@ sbt scalafmt 他にも - ライブラリのリリースを自動化する `sbt-ci-release` - アプリケーションをさまざまな形式でパッケージングする `sbt-native-packager` -- Scala.js や Scala Native のクロスビルドを簡単にする `sbt-crossproject` +- Scala.jsやScala Nativeのクロスビルドを簡単にする `sbt-crossproject` -などさまざまなプラグインがあります. \ No newline at end of file +などさまざまなプラグインがあります。 \ No newline at end of file From 57322845f0503de13abd767b4b4dbca20a7026b9 Mon Sep 17 00:00:00 2001 From: 110416 Date: Fri, 23 Sep 2022 17:22:03 +0900 Subject: [PATCH 09/12] Update src/sbt-usage.md Co-authored-by: kenji yoshida <6b656e6a69@gmail.com> --- src/sbt-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 1a700634..6264c496 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -134,7 +134,7 @@ lazy val app = project.in(file(".")) .enablePlugins(ScalaJSPlugin) .settings( libraryDependencies ++= Seq( - "com.typelevel" %%% "cats-core" % "2.7.0" + "com.typelevel" %%% "cats-core" % "2.8.0" ) ) ``` From 45614abe2a05fdac175a121e439b98ea8840c85e Mon Sep 17 00:00:00 2001 From: 110416 Date: Fri, 23 Sep 2022 17:22:11 +0900 Subject: [PATCH 10/12] Update src/sbt-usage.md Co-authored-by: kenji yoshida <6b656e6a69@gmail.com> --- src/sbt-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 6264c496..b45b324b 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -151,7 +151,7 @@ lazy val app = project.in(file(".")) lazy val app = project.in(file(".")) .settings( libraryDependencies ++= Seq( - "com.typelevel" %% "cats-core" % "2.7.0", + "com.typelevel" %% "cats-core" % "2.8.0", "org.scalameta" %% "munit" % "1.0.0-M6" % Test, ) ) From 023adabaaa252d6e81a78391917ebd4ac8fcba33 Mon Sep 17 00:00:00 2001 From: 110416 Date: Fri, 23 Sep 2022 17:22:17 +0900 Subject: [PATCH 11/12] Update src/sbt-usage.md Co-authored-by: kenji yoshida <6b656e6a69@gmail.com> --- src/sbt-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index b45b324b..079b98a3 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -40,7 +40,7 @@ lazy val app = project.in(file(".")) lazy val lib = project.in(file(".")) .settings( scalaVersion := "2.13.8", - crossScalaVersions := Seq("2.13.8","3.2.0") + crossScalaVersions := Seq("2.13.8", "3.2.0") ) ``` From 5aee25376ff441aabb008f25d5607ac9d7d605c0 Mon Sep 17 00:00:00 2001 From: 110416 Date: Fri, 23 Sep 2022 17:22:46 +0900 Subject: [PATCH 12/12] Update src/sbt-usage.md Co-authored-by: kenji yoshida <6b656e6a69@gmail.com> --- src/sbt-usage.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/sbt-usage.md b/src/sbt-usage.md index 079b98a3..99928775 100644 --- a/src/sbt-usage.md +++ b/src/sbt-usage.md @@ -24,10 +24,7 @@ Scalaのアプリケーションを書く場合、例えばウェブサーバー ```scala -lazy val app = project.in(file(".")) - .settings( - scalaVersion := "3.2.0" - ) +scalaVersion := "3.2.0" ``` ### 複数の Scala バージョンを管理する場合