2

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,
    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)
}

したがって、 を呼び出すとplay eclipse、3 つのサブモジュールすべてが隠れるはずですが、代わりに最初のモジュールのみがコンパイルされます。なぜでしょうか?

play からのダンプは次のとおりです。

$ /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
$

なんで?何か理由はありますか?

プロジェクトを実行すると、すべてが正常に機能し、各モジュールが正しく機能します。

私は何が欠けていますか?

4

2 に答える 2

6

わかりました、PlayFramework のGoogle グループ ディスカッションからの @Stijn からの素晴らしい指示で、私は解決策を見つけました。

PlayFrameworkのドキュメントを使用すると、すべてのサブモジュールを構築するための 2 つのオプションがあります。

オプション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
  )

  ...

}

EclipseKeys をインポートすることを忘れないでください!

お役に立てれば!

于 2013-03-22T09:19:37.543 に答える
2

次のように記述すれば、play コンソールの外でこれを行うことができます。

play "eclipse skip-parents=false"
于 2014-01-08T19:04:01.630 に答える