👋
Scala開発覚書
参考リンク
- 入門 | Scala Documentation
- Overview · Coursier
- Introduction - The Book of sbt
- sbt-assembly
- Plugin basics - The Book of sbt
- sbt マルチプロジェクトビルド sbt-assemblyでそれぞれのjar生成 #sbt - Qiita
- GitBucketプラグインを作ってみよう - たけぞう瀕死ブログ
- How to create GitBucket plug-in
- GitBucketプラグインの開発をサポートするsbtプラグインを作りました - たけぞう瀕死ブログ
- scalafmtのはじめかた #GitHubActions - Qiita
- scaladocとグラフ #Scala - Qiita
- Generating Scaladoc | Scaladoc | Scala Documentation
この記事について
GitBucket: A Git platformGitBucketのプラグイン開発にあたっての個人的備忘録です。
Coursier で指定したバージョンの JVM 用の環境変数を取得
cs java --jvm 17 --env
表示された結果を実行(コマンドプロンプトの場合)
set CS_FORMER_JAVA_HOME="%JAVA_HOME%"
set "JAVA_HOME=C:\Users\username\AppData\Local\Coursier\cache\arc\https\github.com\adoptium\temurin17-binaries\releases\download\jdk-17.0.15%252B6\OpenJDK17U-jdk_x64_windows_hotspot_17.0.15_6.zip\jdk-17.0.15+6"
set "PATH=C:\Users\username\AppData\Local\Coursier\cache\arc\https\github.com\adoptium\temurin17-binaries\releases\download\jdk-17.0.15%252B6\OpenJDK17U-jdk_x64_windows_hotspot_17.0.15_6.zip\jdk-17.0.15+6\bin;%PATH%"
scala インタープリターの抜け方
:q
コンパイル
sbt compile
依存するライブラリを同梱した jar ファイルの作成
sbt-assembly プラグインが必要
sbt assembly
整形
sbt-scalafmt プラグインが必要
sbt scalafmtAll
最低限必要な設定
project\plugins.sbt へ追記
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6")
.scalafmt.conf を作成
version = "3.10.2"
runner.dialect = scala213source3
runner.dialect に指定できる値は、Scala Dialects を参照。
scaladoc
インストール
cs install scaladoc
API ドキュメントの生成
sbt doc
target/scala-version/api 以下に生成される。
継承関係を図で表示したい場合は、Graphvizが必要。
なお、-diagram というオプションは廃止されたようだ。
Markdown のリストを使う際は、他の文章より字下げする
以下のように他の段落と同一のインデントだとうまくリストとして変換されない。
/**
* Enhanced Node Renderer for Markdown processing.
*
* This renderer adds support for:
* - PlantUML code blocks: Renders PlantUML diagrams from fenced code blocks labeled "plantuml".
* - WikiLinks: Renders wiki-style links.
* - Marked text: Renders text wrapped in <mark> tags.
*/
次のように他の文章より字下げする。
/**
* Enhanced Node Renderer for Markdown processing.
*
* This renderer adds support for:
* - PlantUML code blocks: Renders PlantUML diagrams from fenced code blocks labeled "plantuml".
* - WikiLinks: Renders wiki-style links.
* - Marked text: Renders text wrapped in <mark> tags.
*/
Discussion