在sbt命令行中,build.sbt只需键入其名称即可查找大多数变量- 例如:
> libraryDependencies
[info] List(org.scala-lang:scala-library:2.10.3, junit:junit:latest.revision)
Run Code Online (Sandbox Code Playgroud)
但这不适用于mainClass:
> mainClass
[success] Total time: 0 s, completed Jul 16, 2014 7:20:58 AM
Run Code Online (Sandbox Code Playgroud)
大概这是因为你设置价值的mainClass方式并不那么简单 - 你必须把这样的东西放在build.sbt:
mainClass in (Compile, run) := Some("com.example.MyClass")
mainClass in (Compile, packageBin) := Some("com.example.MyClass")
mainClass in (Test, run) := Some("com.example.MyClass")
mainClass in (Test, packageBin) := Some("com.example.MyClass")
Run Code Online (Sandbox Code Playgroud)
事实上,事实证明,它mainClass实际上根本不是一个普通的价值 - 它是一个TaskKey,而不是一个SettingKey.因此,当您在sbt命令行键入其名称时,我认为sbt实际上正在运行一些代码.
那么...我在sbt命令行输入什么来查询,例如,mainClass in (Compile, run)?的值?(或者,所有的值mainClass.)
如果在命令行中输入其名称,则默认情况下设置会显示其值,但任务不会.libraryDependencies是一个设置,这就是它默认显示其值的原因.
mainClass然而,这是一项任务.要显示任务的值,您必须明确使用show:
> show mainClass
Run Code Online (Sandbox Code Playgroud)
如果您想要查看给定范围,任务和/或项目中的值,则应填写必要的轴 - 请参阅http://www.scala-sbt.org/0.13.5/docs/Getting-Started/Scopes .html.
> show run::mainClass
[info] Some(com.example.Hello)
> show compile:mainClass
[info] Some(com.example.Hello)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |