Scala 从SBT中解析排除测试依赖项

Scala 从SBT中解析排除测试依赖项,scala,build,sbt,Scala,Build,Sbt,我们有一个build.sbt文件。我包括一些图书馆: libraryDependencies +== Seq( "xyz" %% "xyz-commons" % "1.0-SNAPSHOT", "abc" %% "abc-commons" % "1.0" % Test ) 问题:如果执行'sbt run',所有库依赖项都将得到解决。我怎样才能改变这种行为?为了避免这种情况,我做了以下几点,但这不是最佳选择: library

我们有一个build.sbt文件。我包括一些图书馆:

    libraryDependencies +== Seq(
            "xyz" %% "xyz-commons" % "1.0-SNAPSHOT",
            "abc" %% "abc-commons" % "1.0" % Test
    )
问题:如果执行'sbt run',所有库依赖项都将得到解决。我怎样才能改变这种行为?为了避免这种情况,我做了以下几点,但这不是最佳选择:

    libraryDependencies ++= (
      if (sys.env.getOrElse("INCLUDE_TEST_LIBS", "false") == "true")
         Seq("abc" %% "abc-commons" % "1.0" % Test)
      else
        Nil
     )
我已经指定了一个自定义任务,让我们调用任务演示。基本上,我只想为这个特定任务解析一些库。我发现这[1]篇文章提供了一个可能的解决方案,但我无法将此方法映射到taskKey


[1]

为什么不希望在运行应用程序时解析测试依赖关系?解析库不是免费的(空间/时间)。@user2129340解析库后,它将被缓存,并且不再显著影响性能。如果您希望使用git来分发代码并使用sbt来运行它,那么在空间/时间上也不是很有效-您最好构建一个安装程序,并在没有sbt负担的情况下运行生成的应用程序。但是,不先测试就发布应用程序也没有意义。@user2129340-发现应用程序不仅在运行时工作,而且还需要运行测试,这样做的成本(时间/时间)更高。建议使用每个引入的更改运行它们。。。之后,您希望构建一个包并在没有SBT的情况下独立运行应用程序。是的,我理解。您描述的场景不适用于我们的架构和规模。不管怎样,如果有人想解决手头的问题,那就太好了。同时,我将研究sbt以了解更多细节。