小编Dal*_*and的帖子

在sbt中,如何在所有配置中覆盖控制台的scalacOptions?

我喜欢scalacOptions在顶级定义(例如,暂时忽略项目轴):

scalacOptions += "-Ywarn-unused-import"
Run Code Online (Sandbox Code Playgroud)

但后来我意识到这太严格了console.所以我试着设置:

scalacOptions in console ~= (_ filterNot (_ == "-Ywarn-unused-import"))
Run Code Online (Sandbox Code Playgroud)

但这不起作用(在REPL中仍然有致命的警告).

我曾经inspect尝试理解为什么:

> inspect console
[info] Task: Unit
[info] Description:
[info]  Starts the Scala interpreter with the project classes on the classpath.
[info] Provided by:
[info]  {file:/a/}b/compile:console
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:261
[info] Dependencies:
[info]  compile:console::compilers
[info]  compile:console::initialCommands
[info]  compile:console::fullClasspath
[info]  compile:console::taskTemporaryDirectory
[info]  compile:console::scalaInstance
[info]  compile:console::streams
[info]  compile:console::cleanupCommands
[info]  compile:console::scalacOptions
[info] Delegates:
[info]  compile:console
[info]  *:console
[info]  {.}/compile:console
[info] …
Run Code Online (Sandbox Code Playgroud)

scala sbt

23
推荐指数
1
解决办法
3920
查看次数

9
推荐指数
4
解决办法
7270
查看次数

如何动态增强sbt插件的构建,即不保存?

我经常想要添加sbt-dependency-graph-sugar到当前会话中.我目前的做法是:

> reload plugins
> set addSbtPlugin("com.gilt" % "sbt-dependency-graph-sugar" % "0.7.4")
> session save
> reload return
> dependencyTree
Run Code Online (Sandbox Code Playgroud)

然后在以后恢复文件系统上的更改.有没有办法在更少的步骤中执行此操作,而无需更改构建文件?

sbt

9
推荐指数
1
解决办法
107
查看次数

sbt控制台如何更新到最新的Scala版本?

我已经使用在Linux上安装sbt中的说明安装了sbt.

$ sbt --version
sbt launcher version **0.13.8**
Run Code Online (Sandbox Code Playgroud)
$ sbt console
[info] Starting scala interpreter...
[info] 
Welcome to Scala version 2.10.4 (OpenJDK 64-Bit Server VM, Java 1.7.0_79).
Run Code Online (Sandbox Code Playgroud)

如何配置(或更新)sbt以便sbt console使用最新的Scala版本2.11.6

sbt

8
推荐指数
2
解决办法
6241
查看次数

sbt编译在Compile中意思

有人可以在这个神秘的习语中解释每个compileCompile意味着什么:

compile in Compile <<= (compile in Compile).dependsOn(Def.task { 
  println("task is running") // or whatever code here in the body
})
Run Code Online (Sandbox Code Playgroud)

sbt

8
推荐指数
1
解决办法
901
查看次数

如何使用包含依赖类型的隐式参数组对此方法进行编码?

给定Printer具有依赖类型的类型类Show[A]:

trait Printer {
  type Show[A]
  def show[A](x: A)(implicit z: Show[A]): String
}

object Printer {
  // the intent here is this is the dumb fallback
  // and a user can have a better alternative in scope
  implicit val dumbPrinter: Printer = new Printer {
    type Show[A] = DummyImplicit
    def show[A](x: A)(implicit z: DummyImplicit): String = x.toString
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何编码此方法:

def r[A](x: A)(implicit printer: Printer, show: printer.Show[A]): String =
  printer.show(x)(show)
Run Code Online (Sandbox Code Playgroud)

我一直在努力调整@ MilesSabin的主要工作代码https://gist.github.com/milessabin/cadd73b7756fe4097ca0和@ TravisBrown的博客文章https://meta.plasm.us/posts/2015/07/11/ …

scala path-dependent-type dependent-type

8
推荐指数
1
解决办法
115
查看次数

如何从编译中排除文件夹

在我们的Play项目中,我们遇到了这个问题.

当我们运行我们的javascript测试时,它会触发scala源代码的编译.

所有javascripts测试都在,test/assets并且此路径内的任何更改都不应触发源的编译.

这意味着此文件夹在某处被称为源目录.我试图看到哪个sbt属性可以引用这个文件夹,但我没有找到任何.

任何人都可以提供一些线索,如何在这个文件夹中的文件被更改时阻止编译触发?

sbt playframework

7
推荐指数
1
解决办法
907
查看次数

无法编译实现没有类型参数的接口的类

我有以下测试代码:

public interface Container<I> {
    public void addClass(Class<?> clazz);
}

public class MyContainer implements Container {
    public void addClass(Class<?> clazz) {}
}
Run Code Online (Sandbox Code Playgroud)

尝试编译这两个类时,我收到以下错误:

MyContainer.java:1:MyContainer不是抽象的,不会覆盖Container中的抽象方法addClass(java.lang.Class)

如果我在MyContainer中向Container接口添加一个类型(例如<Object>),我就不会收到错误.

问题是我将类型参数引入到Container,它是公共API的一部分,因此为了兼容性,我不能让所有实现类都无法编译.

有人有主意吗?这是类型擦除问题吗?有解决方法吗?

java generics overriding type-erasure type-parameter

6
推荐指数
1
解决办法
434
查看次数

如何向MANIFEST.MF添加自定义行?

使用Build.scala向MANIFEST.MF添加自定义键值对似乎不起作用.这是我的代码:

import sbt._
import Keys._
import java.util.Date

object Build extends Build {

  packageOptions in (Compile, packageBin) +=
    Package.ManifestAttributes( "Build" -> "true" )

}
Run Code Online (Sandbox Code Playgroud)

当我添加:

packageOptions in (Compile, packageBin) +=
  Package.ManifestAttributes( "Sign" -> "true" )
Run Code Online (Sandbox Code Playgroud)

到我的build.sbt然后只Sign到达我的MANIFEST.MF.有什么想法吗?

manifest.mf sbt

5
推荐指数
1
解决办法
1824
查看次数

为什么x.toString与(x:Any).toString不同

接下来,当x.toString失败时,ScalaRunTime.stringOf(x)如何失败?, 怎么

x.toString
Run Code Online (Sandbox Code Playgroud)

不同于

(x: Any).toString
Run Code Online (Sandbox Code Playgroud)

还有,怎么样

"" + x
Run Code Online (Sandbox Code Playgroud)

示例REPL会话:

> scala -cp joda-time-2.3.jar
Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val dt = new org.joda.time.DateTime
warning: Class org.joda.convert.FromString not found - continuing with a stub.
warning: Class org.joda.convert.ToString not found - continuing with a stub.
warning: Class org.joda.convert.FromString not found - continuing with a stub.
warning: Class org.joda.convert.ToString …
Run Code Online (Sandbox Code Playgroud)

inheritance scala overloading read-eval-print-loop

5
推荐指数
1
解决办法
933
查看次数