相关疑难解决方法(0)

设置sbt环境一次攻击多个库

在Sbt中是否有相当于Leiningen的"结账"功能?

这是我想要完成的:

我有两个项目,一个应用程序Foo和库" Bar ".我想独立发布这些项目. Foo依赖于Bar,并且每当第三方尝试构建"Foo"(这是典型行为)时,sbt项目将指示sbt 从存储库下载" Bar " 的jar .

现在,说我想同时攻击FooBar.例如,在处理Foo时,我想直接编辑和调试Bar的一些源代码,因此编辑会影响Foo(稍后在方便的时候重建Bar).

在此黑客会话期间,如何指示sbt 从我的机器(而不是我的本地存储库)上的源代码中满足其对Bar的依赖?

(PS我问过Clojure/Leiningen 的类似问题 .Leiningen有"结账"功能来完成这个.我想知道是否有类似的东西......)

scala sbt

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

SBT多项目建设与动态外部项目?

假设我们有一个SBT项目bar依赖于某些工件foo:

val bar = Project('bar', file('.')).settings(    
  libraryDependencies += "com.foo" % "foo" % "1.0.0"
)
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,我想检查源代码foo并让SBT从我的文件系统而不是已发布的工件加载源代码; 这样,我可以对其进行局部更改foo并立即对其进行测试,bar而无需发布任何内容.

val foo = Project('foo', file('foo'))

val bar = Project('bar', file('.')).dependsOn(foo)
Run Code Online (Sandbox Code Playgroud)

我们spec.json在根文件夹中有一个文件bar已经指定是foo应该从源使用还是作为工件使用.有没有办法设置我的构建来读取此文件并添加dependsOnlibraryDependencies基于值spec.json?"

这样做很容易libraryDependencies:

val bar = Project('bar', file('.')).settings(    
  libraryDependencies ++= 
    if (containsFoo(baseDirectory.value / "spec.json")) {
      Seq()
    } else {
      Seq("com.foo" % "foo" % "1.0.0")
    }
)
Run Code Online (Sandbox Code Playgroud)

但是,我们找不到任何方法来设置做任何"动态" dependsOn,比如阅读baseDirectory SettingKey …

scala build sbt playframework-2.0

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

标签 统计

sbt ×2

scala ×2

build ×1

playframework-2.0 ×1