我对 Maven Reactor 的工作方式有一定的疑问,也许你们中的一些人可以帮助我。
我的项目结构。
项目A(B的父级/B、C的聚合器)
----->ProjectB(C 的父级和 N1...Nn 的聚合器)
----->ProjectC(M1..Mn 的父级和聚合器)
当我从 ProjectA 构建时,如下所示:“mvn install -pl ProjectC -am -amd”,我的意图是 ProjectC (及其所有依赖项直接/传递)及其所有聚合项目 (M1..Mn) 将被构建。
但实际发生的情况是 Ms 失败了,因为它的依赖项之一 - Ns 尚未构建。
看起来 Maven React 仅构建 Projects 的 C 依赖项 (-am) 并尝试构建依赖于 ProjectC (-amd) 的所有项目,但不首先构建所有其他依赖项。
有没有办法让它递归(在所有 -amd 上强制使用 -am :) )
如果不是,应该采取什么解决方法?
我需要能够在 sbt 中执行以下命令:sbt myproject/it:test
但要确保仅
class Combiner extends Suites(new TestSuite1,new TestSuite2,new TestSuite3)
Run Code Online (Sandbox Code Playgroud)
将被执行,而不是Combiner + TestSuite1 + TestSuite2 + TestSuite3全部被执行。
现在我意识到我可以提供一个特定的类来在 sbt 中执行 - 这不是我想要的,因为我不希望其他团队成员记住在一个特定项目中运行特殊的 sbt 命令。
我想在多模块项目中以非交互模式运行单个测试类。我知道如何以交互方式首先启动 sbt,然后选择项目,然后使用“testOnly”。如何通过一个命令(或脚本)完成这一切
以下函数在我看来是尾递归
但是编译器仍然抱怨如果我把@tailrec它放在上面:
def loop(newInterests: Set[Interest], oldInterests: Set[Interest]): Set[Interest] = {
newInterests.headOption.fold(oldInterests){ ni =>
val withSameKeyWord = oldInterests.find(oi => oi.keyword == ni.keyword)
withSameKeyWord.fold(loop(newInterests.tail, oldInterests + ni)){ k =>
loop(newInterests.tail,
oldInterests - k + k.copy(count = k.count + 1))
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下类型: val l:Seq[(List[Int],Set[Int])] = ...
我试图将其减少如下:
l.reduceLeft {
case ((a1,b1),(a2,b2)) => if((b1 & b2).nomEmpty) ((a1:::a2),(b1 | b2)) else (a1,b1) }
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
error:Expression of type (List[Int],Set[Int]) doesn't conform to expected type B_
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?