我可以让 sbt 仅针对特定任务编译具有附加依赖项的附加源吗?
Can I make sbt compile additional sources with additional dependencies only for a specific task?
我在编写代码时使用喷雾左轮手枪来测试我的应用程序。
我想让左轮手枪运行编译额外的源(例如 /src/dev.scala 或其他)与额外的依赖。这样在本地测试时,我可以在同一个虚拟机中启动我们正在使用的一些外部服务(例如 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")
但是在运行任务时,我发现主 class 不存在。
有什么方法可以实现吗?这个想法是为了避免将 dev.scala 中的 cassandra 单元和代码排除在测试和打包的编译之外。
那不行,因为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。
我在编写代码时使用喷雾左轮手枪来测试我的应用程序。
我想让左轮手枪运行编译额外的源(例如 /src/dev.scala 或其他)与额外的依赖。这样在本地测试时,我可以在同一个虚拟机中启动我们正在使用的一些外部服务(例如 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")
但是在运行任务时,我发现主 class 不存在。
有什么方法可以实现吗?这个想法是为了避免将 dev.scala 中的 cassandra 单元和代码排除在测试和打包的编译之外。
那不行,因为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。