2

commonクライアント、サービス、ユーティリティなどを処理するライブラリを使用して構築したい play プロジェクトがあります...

私のディレクトリ構造は次のようになります:

.
├── build.sbt
├── myapp
│   ├── app
│   │   ├── controllers
│   │   │   └── HomeController.scala
│   │   └── views
│   │       ├── index.scala.html
│   │       └── main.scala.html
│   ├── conf
│   │   ├── application.conf
│   │   ├── logback.xml
│   │   ├── messages
│   │   └── routes
│   ├── public
│   │   ├── images
│   │   │   └── favicon.png
│   │   ├── javascripts
│   │   │   └── main.js
│   │   └── stylesheets
│   │       └── main.css
│   └── test
│       └── controllers
│           └── HomeControllerSpec.scala
├── myapp-common
│   └── src
│       └── main
│           └── TesterObject.scala
└── project
    ├── build.properties
    ├── plugins.sbt
    └── scaffold.sbt

私の build.sbt は次のように構成されています。

lazy val commonSettings = Seq(
  version := "1.0-SNAPSHOT",
  scalaVersion := "2.12.3"
)

lazy val root = (project in file("."))
  .settings(commonSettings)
  .aggregate(myapp, `myapp-common`)
  .dependsOn(myapp, `myapp-common`)

lazy val `myapp-common` = project
  .settings(commonSettings)                                                                                                                                                                                

lazy val myapp = project
  .enablePlugins(PlayScala)
  .settings(commonSettings)
  .settings(libraryDependencies += guice)
  .settings(libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2" % Test)
  .dependsOn(`myapp-common`)

で play プロジェクトを正常に実行できsbt myapp/runますが、で定義されたパッケージをインポートしようとすると失敗しますmyapp-common

たとえば、私が持っている場合myapp-common/src/main/TesterObject.scala:

package tester

Object TesterObject {
    val testMe = 3
}

import tester._で使用しようとすると、パッケージが見つからないため、コンパイル中にプロジェクトが失敗しますTesterObject.testMemyapp/app/controllers/HomeController.scala

ここで誰かが私を正しい方向に向けることができますか? マルチプロジェクトに関する sbt ガイドは、この特定の問題を解析するのが少し難しいです。私の依存関係は適切に設定されているようです。

4

0 に答える 0