help
コマンドは、使用可能なコマンドを表示し、コマンド、タスク、または設定のヘルプを検索するために使用されます。引数なしで実行すると、help
は使用可能なコマンドをリストします。
> help
help Displays this help message or prints detailed help on
requested commands (run 'help <command>').
about Displays basic information about sbt and the build.
reload (Re)loads the project in the current directory
...
> help compile
help
に渡された引数が既存のコマンド、設定、またはタスクの名前である場合、そのエンティティのヘルプが表示されます。それ以外の場合は、引数は正規表現として解釈され、すべてのコマンド、設定、およびタスクのヘルプを検索するために使用されます。
tasks
コマンドはhelp
コマンドに似ていますが、タスクのみを操作します。同様に、settings
コマンドは設定のみを操作します。
help help
、help tasks
、およびhelp settings
も参照してください。
引数なしのtasks
コマンドは、最も一般的に使用されるタスクをリストします。タスク名と説明を検索するために正規表現を使用できます。冗長性を増やすことで、あまり使用されないタスクの表示や検索を行うことができます。詳細はhelp tasks
を参照してください。
引数なしのsettings
コマンドは、最も一般的に使用される設定をリストします。設定名と説明を検索するために正規表現を使用できます。冗長性を増やすことで、あまり使用されない設定の表示や検索を行うことができます。詳細はhelp settings
を参照してください。
inspect
コマンドは、タスク/設定の依存関係だけでなく、それに依存するタスク/設定も含め、特定の設定またはタスクに関するいくつかの情報を表示します。例えば、
> inspect Test/compile
...
[info] Dependencies:
[info] Test / manipulateBytecode
[info] Test / enableBinaryCompileAnalysis
[info] Test / compileIncSetup
[info] Reverse dependencies:
[info] Test / products
[info] Test / discoveredMainClasses
[info] Test / printWarnings
[info] Test / definedTestNames
[info] Test / definedTests
...
詳細は設定の検査ページを参照してください。
前セクションで説明されているように、直接的な前方および後方依存関係を表示することに加えて、inspect
コマンドはタスクまたは設定の完全な依存関係ツリーを表示できます。例えば、
> inspect tree clean
[info] clean = Task[Unit]
[info] +-clean / streams = Task[sbt.std.TaskStreams[sbt.internal.util.Init$ScopedKey[_ <: Any]]]
[info] | +-Global / streamsManager = Task[sbt.std.Streams[sbt.internal.util.Init$ScopedKey[_ <: Any]]]
[info] |
[info] +-cleanFiles = Task[scala.collection.Seq[java.io.File]]
[info] | +-cleanKeepFiles = Vector(<project>/target/.history)
[info] | | +-history = Some(<project>/target/.history)
[info] | | +-target = target
[info] | | +-baseDirectory =
...
各タスクについて、inspect tree
はタスクによって生成された値の型を示します。設定の場合、設定のtoString
が表示されます。inspect
コマンドの詳細については、設定の検査ページを参照してください。
help
、settings
、およびtasks
コマンドはタスクの説明を表示しますが、inspect
コマンドは設定またはタスクの型と設定の値も表示します。例えば
> inspect update
[info] Task: sbt.librarymanagement.UpdateReport
[info] Description:
[info] Resolves and optionally retrieves dependencies, producing a report.
...
> inspect scalaVersion
[info] Setting: java.lang.String = 2.12.6
[info] Description:
[info] The version of Scala used for building.
...
詳細は設定の検査ページを参照してください。
詳細は設定の検査ページを参照してください。
inspect
コマンドは、設定またはタスクが定義されているスコープを見つけるのに役立ちます。次の例は、テストとAPIドキュメント生成のためにScalaに異なるオプションを指定できることを示しています。
> inspect scalacOptions
...
[info] Related:
[info] Compile / scalacOptions
[info] Global / scalacOptions
[info] Test / scalacOptions
詳細は設定の検査ページを参照してください。
projects
コマンドは、現在ロードされているプロジェクトを表示します。プロジェクトはそれらを囲むビルドによってグループ化され、現在のプロジェクトはアスタリスクで示されます。例えば、
> projects
[info] In file:/home/user/demo/
[info] * parent
[info] sub
[info] In file:/home/user/dep/
[info] sample
session list
は、現在のプロジェクトのためにコマンドラインで追加された設定を表示します。例えば、
> session list
1. maxErrors := 5
2. scalacOptions += "-explaintypes"
session list-all
は、すべてのプロジェクトに追加された設定を表示します。詳細はhelp session
を参照してください。
> about
[info] This is sbt 1.1.5
[info] The current project is {file:~/code/sbt.github.com/}default
[info] The current project is built against Scala 2.12.6
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, sbt.plugins.Giter8TemplatePlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.6
inspect
コマンドは、その出力の一部として設定の値を表示しますが、show
コマンドはこのジョブ専用です。引数として提供された設定の出力を表示します。例えば、
> show organization
[info] com.github.sbt
show
コマンドは、次に説明するタスクでも機能します。
> show update
... <output of update> ...
[info] Update report:
[info] Resolve time: 122 ms, Download time: 5 ms, Download size: 0 bytes
[info] compile:
[info] org.scala-lang:scala-library:
[info] - 2.12.6
[info] ...
show
コマンドは、引数として提供されたタスクを実行してから結果を出力します。これは、タスクを実行せず、その型のみを表示できるため、値を生成できないinspect
コマンド(他のセクションで説明)の動作とは異なります。
> show compile:dependencyClasspath
...
[info] ArrayBuffer(Attributed(/Users/foo/.sbt/boot/scala-2.12.6/lib/scala-library.jar))
テストクラスパスについては、
> show Test/dependencyClasspath
...
[info] List(Attributed(/Users/foo/code/sbt.github.com/target/scala-2.12/classes), Attributed(~/.sbt/boot/scala-2.12.6/lib/scala-library.jar), Attributed(/Users/foo/.ivy2/cache/junit/junit/jars/junit-4.8.2.jar))
...
sbtは、run
メソッドで使用し、runMain
メソッドをタブ補完するために、publicでstaticなmainメソッドを持つクラスを検出します。discoveredMainClasses
タスクはこの検出を行い、結果としてクラス名のリストを提供します。例えば、以下はメインソースで検出されたメインクラスを示しています
> show compile:discoveredMainClasses
... <runs compile if out of date> ...
[info] List(org.example.Main)
sbtは、テストフレームワークによって提供されるフィンガープリントに従ってテストを検出します。definedTestNames
タスクは、このようにして検出されたテスト名のリストを結果として提供します。例えば、
> show Test/definedTestNames
... < runs test:compile if out of date > ...
[info] List(org.example.TestA, org.example.TestB)