The next build.sbtin the root project should allow you to create this project structure.
lazy val ComponentA = project
lazy val ComponentB = project dependsOn ComponentA
lazy val root = project in file(".") dependsOn (ComponentA, ComponentB) aggregate (ComponentA, ComponentB)
You will need to fix a few problems in the component objects so that they compile, but the path to the project classes should be good.
, , root dependsOn ComponentAB, dependsOn ComponentB (, , ComponentA ComponentB ).
.
Componenta/ComponentA.scala
object ComponentA {
def apply(): String = {
var myMessage = "this message should be passed to ComponentB"
println(s"Message to forward: $myMessage\n\n\n")
myMessage
}
}
ComponentB/ComponentB.scala
object ComponentB {
def apply(msg: String) = {
println("\n\n\n Inside ComponentB! \n\n\n ")
println("Message received: $msg\n\n\n")
}
}
Main.scala
object MainObject {
def main(args: Array[String]) {
println("\n\n\n Inside main! \n\n\n ")
ComponentA()
}
}
, run, :
[root]> run
[info] Running ComponentB
Inside main!
Message to forward: this message should be passed to ComponentB
[success] Total time: 0 s, completed Jan 20, 2014 9:59:32 PM