I want to test how sub projects work, especially how the routes
of the sub project are taken into account in main project (this was not visible before).
I have read the docs here: https://github.com/playframework/Play20/wiki/SBTSubProjects
What have I done: (after downloading play 2.1 RC3)
- Create new Java Project:
play new MainProject
- Create new folder inside MainProject:
modules
- Create new Java Project:
play new SubProject
On both projects: play eclipse
since play eclipsify
does not work anymore
In the main projects Build.scala
file:
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build {
val appName = "MainProject"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean
)
val subProject = Project("subproject", file("modules/SubProject"))
val main = play.Project(appName, appVersion, appDependencies).settings(
// Add your own project settings here
).dependsOn(subProject)
}
Now, in the main project I run:
play run
And I get the following errors:
[error] (MainProject/*:update) sbt.ResolveException: unresolved dependency: play#play_2.9.2;2.1-RC3: not found
[error] unresolved dependency: play#play-java_2.9.2;2.1-RC3: not found
[error] unresolved dependency: play#play-java-jdbc_2.9.2;2.1-RC3: not found
[error] unresolved dependency: play#play-java-ebean_2.9.2;2.1-RC3: not found
[error] unresolved dependency: play#play-test_2.9.2;2.1-RC3: not found
Note
I have tried to delete the Build.scala
from the subproject but I kep getting this error.
What am I doing wrong?
I found that I had to explicitly set the scala version to 2.10.0 because the subprojects caused a conflict with 2.9.2.
Example taken from this question.
Finally got it working:
Build.scala
from the subproject.You need to rename the routes file of your sub project. In my example, to
subProject.routes
. If you want to run your subproject in isolation you need to declare that routes must resolve to your subProject.routes. So add this in theapplication.conf
of your subProject:In your main project, you need to import the routes from the subproject:
And the build file of the main project should look something like: example is from SCALA but s