我在编写代码时使用喷雾左轮手枪来测试我的应用程序。
我想让一个左轮手枪运行编译额外的源(例如/src/dev.scala或其他)与其他依赖项。在本地测试时,我可以在同一个vm中启动我们正在使用的一些外部服务(例如cassandra),而无需设置适当的环境。
最初我尝试设置这样的设置:
unmanagedSources in Revolver.reStart <<= (unmanagedSources in Compile) map { ss => ss :+ new File("/path/to/my/dev.scala") }
libraryDependencies in Revolver.reStart += ("org.cassandraunit" % "cassandra-unit" % "2.0.2.1")
mainClass in Revolver.reStart := Some("my.main.class.in.dev")
但是在运行任务时,我只是觉得主类不存在。
有没有办法让这项工作?我们的想法是避免将dev.scala中的cassandra-unit和代码从测试编译中删除。包装
答案 0 :(得分:1)
这不起作用,因为Revolver.reStart
仍使用compile in Compile
,compile in Compile
使用libraryDependencies
,不 libraryDependencies in Revolver.reStart
。
为此,您需要定义一个完全不同的自定义配置,以扩展您的Compile
配置。在该配置中,例如"Localcompile"
,您可以使用
unmanagedSources in Localcompile += new File("/path/to/my/dev.scala")
libraryDependencies += "org.cassandraunit" % "cassandra-unit" % "2.0.2.1" % "localcompile"
有关示例,请参阅http://www.scala-sbt.org/0.13/docs/Advanced-Configurations-Example.html。