Playframework 为什么只玩框架;月食“;一个子模块?
使用Play Framework 2.1.1-RC1,我将一个项目拆分为多个模块,如下所示:Playframework 为什么只玩框架;月食“;一个子模块?,playframework,playframework-2.1,Playframework,Playframework 2.1,使用Play Framework 2.1.1-RC1,我将一个项目拆分为多个模块,如下所示: object ApplicationBuild extends Build { val appName = "Project" val appVersion = "1.0" val appDependencies = Seq( // Add your project dependencies here, javaCore, javaJdb
object ApplicationBuild extends Build {
val appName = "Project"
val appVersion = "1.0"
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean,
"mysql" % "mysql-connector-java" % "5.1.18"
)
lazy val common = play.Project(
appName + "-common", appVersion, appDependencies, path = file("modules/common")
).settings(
publishArtifact in(Compile, packageDoc) := false
)
lazy val website = play.Project(
appName + "-website", appVersion, appDependencies, path = file("modules/website")
).dependsOn(common).aggregate(common).settings(
requireJs += "app.js",
publishArtifact in(Compile, packageDoc) := false
)
lazy val api = play.Project(
appName + "-api", appVersion, appDependencies, path = file("modules/api")
).dependsOn(common).aggregate(common).settings(
publishArtifact in(Compile, packageDoc) := false
)
val main = play.Project(appName, appVersion, appDependencies).settings(
publishArtifact in(Compile, packageDoc) := false
).dependsOn(website, api).aggregate(website, api)
}
因此,当我调用playeclipse
时,它应该使所有三个子模块都黯然失色,而只编译第一个子模块,你知道为什么吗
以下是播放中的转储:
$ /opt/play/2.1.1-RC1/play eclipse
[info] Loading project definition from /mnt/data/dev/perso/Project/project
[info] Set current project to Project (in build file:/mnt/data/dev/perso/Project/)
[info] About to create Eclipse project files for your project(s).
[info] Updating {file:/mnt/data/dev/perso/Project/}Project-common...
[info] Resolving org.hibernate.javax.persistence#hibernate-jpa-2.0-api;1.0.1.Fin [info] Done updating.
[info] Compiling 27 Java sources to /mnt/data/dev/perso/Project/modules/common/target/scala-2.10/classes...
[info] Successfully created Eclipse project files for project(s):
[info] Project-common
$
为什么??有什么原因吗
如果我运行这个项目,一切正常,每个模块都正常工作
我错过了什么 好吧,从PlayFramework的@Stijn中可以看出,我找到了解决方案 使用,您有两个用于构建所有子模块的选项: 选项1: 进入
play
控制台,然后调用eclipse skip parents=false
:
$ /path/to/playframework/play
[PlayProject] $ eclipse skip-parents=false
警告!在游戏机外执行此操作不起作用:
$ /path/to/playframework/play eclipse skip-parents=false
> [error] Not a valid key: skip-parents (similar: ivy-paths)
> [error] skip-parents=false
选项2:
修改Build.scala:
import com.typesafe.sbteclipse.core.EclipsePlugin.EclipseKeys
object ApplicationBuild extends Build {
override def settings = super.settings ++ Seq(
EclipseKeys.skipParents in ThisBuild := false
)
...
}
别忘了导入Eclipse
希望这有帮助 在游戏控制台外执行此操作将在以下情况下起作用:
play "eclipse skip-parents=false"
当我使用.dependsOn(xy).aggregate(xy)时,我只有这个