I have a poker implementation in a project called engine. Inside my projects/build.scala file, the project definition:
lazy val engine = Project(id = "engine", base = file("engine"))
.settings(...)
The Scala sources inside the engine directory are declared under bitpoker.engine
Then I have the Play 2.1 frontend defined as:
lazy val webClient = play.Project("web-client", path = file("BitPoker"))
.settings(...)
.dependsOn(engine)
The Scala sources inside the BitPoker (web-client) directory reference objects from bitpoker.engine.
I have a top level project:
lazy val bitPoker = Project(id = "bit-poker", base = file("."))
.settings(...)
.dependsOn(webClient).aggregate(webClient)
Running the command “sbt clean compile stage” works locally but when I push to heroku using “git push heroku master” I get:
[info] Compiling 59 Scala sources and 1 Java source to /tmp/build_15alo7gjz26s2/BitPoker/target/scala-2.10/classes...
[error] /tmp/build_15alo7gjz26s2/BitPoker/app/models/game/GameSearcher.scala:4: object engine is not a member of package bitpoker
among many other “not found” errors that occur whenever I reference something in bitpoker.engine.
Is Heroku ignoring my dependencies or is something else happening?
I’m using Play 2.1-RC1, Scala 2.1.10, and SBT 0.12.1
The engine project was declared to live at
path = file("engine")whereas the actual code lived atEnginewith a captial “E”. This compiles on Windows 7 64 bit, but crashed on Heroku. The fix was changing the path declaration for the engine project to:path = file("Engine")