Я бы хотел создать проект с несколькими приложениями на Play Framework 2.5, но не понимаю, почему часть проекта никогда не компилируется
Вот структура проекта:
build.sbt (main sbt file)
common/ (common code shared by apps)
build.sbt
app/
conf/
public/
apps/
app1/
build.sbt
app/
conf/
public/
app2/
build.sbt
app/
conf/
public/
...
common/
и appX/
- приложения Play Framework с собственным файлом build.sbt.
основной файл build.sbt:
lazy val common = (project in file("common"))
lazy val app1 = (project in file("apps/app1"))
lazy val app2 = (project in file("apps/app2"))
lazy val root = (project in file("."))
.dependsOn(common, app1, app2)
.aggregate(common, app1, app2)
общий файл build.sbt:
import WebJs._
import RjsKeys._
scalaVersion := "2.11.11"
lazy val common = (project in file("."))
.enablePlugins(PlayJava, PlayEbean, SbtWeb)
// Add dependencies from Maven
libraryDependencies ++= Seq(
filters,
javaCore,
javaJdbc,
cache,
javaWs
)
// Enable JavaScript uglifying
pipelineStages := Seq(rjs, uglify, digest)
// Enable CSS optimization
buildProfile := JS.Object("optimizeCss" -> "standard")
// Disable strange behavior in local run
fork in run := false
// Configure the Eclipse project as a Java project
EclipseKeys.projectFlavor := EclipseProjectFlavor.Java
EclipseKeys.createSrc := EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses, EclipseCreateSrc.ManagedResources)
EclipseKeys.preTasks := Seq(compile in Compile)
// Remove eviction warnings
evictionWarningOptions in update := EvictionWarningOptions.default.withWarnTransitiveEvictions(false)
файл app1 build.sbt:
name := """app1"""
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.11"
lazy val common = (project in file("../../common"))
lazy val app1 = (project in file("."))
.enablePlugins(PlayJava)
.dependsOn(common)
файл app2 build.sbt:
name := """app2"""
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.11"
lazy val common = (project in file("../../common"))
lazy val app2 = (project in file("."))
.enablePlugins(PlayJava)
.dependsOn(common)
* * Тысяча двадцать-одина и т.д.
вместе У меня есть маршруты для общего исходного кода (например, пользовательский контроллер), и у меня также есть файл маршрута для каждого приложения.
Когда я пытаюсь скомпилировать с sbt compile
, у меня есть такой вывод:
[info] Updating {file:/myProject/}root...
[info] Compiling 35 Scala sources and 44 Java sources to /myProject/apps/app1/target/scala-2.11/classes...
[info] Compiling 41 Scala sources and 47 Java sources to /myProject/apps/app2/target/scala-2.11/classes...
[info] Resolving common_2.10;0.1-SNAPSHOT ...
[warn] module not found: common_2.10;0.1-SNAPSHOT
[warn] ==== local: tried
[warn] /home/.../common_2.10/0.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/common_2.10/0.1-SNAPSHOT/common_2.10-0.1-SNAPSHOT.pom
[info] Resolving app1_2.10;1.0-SNAPSHOT ...
[warn] module not found: app1_2.10;1.0-SNAPSHOT
[warn] ==== local: tried
[warn] /home/.../app1_2.10/1.0-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/app1_2.10/1.0-SNAPSHOT/app1_2.10-1.0-SNAPSHOT.pom
[info] Resolving app2_2.10;1.0-SNAPSHOT ...
[warn] module not found: app2_2.10;1.0-SNAPSHOT
[warn] ==== local: tried
[warn] /home/.../app2_2.10/1.0-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/app2_2.10/1.0-SNAPSHOT/vestacharger_2.10-1.0-SNAPSHOT.pom
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: common_2.10;0.1-SNAPSHOT: not found
[warn] :: app1_2.10;1.0-SNAPSHOT: not found
[warn] :: app2_2.10;1.0-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Unresolved dependencies path:
[warn] common_2.10:0.1-SNAPSHOT
[warn] +- root:root_2.10:0.1-SNAPSHOT
[warn] app1_2.10:1.0-SNAPSHOT
[warn] +- root:root_2.10:0.1-SNAPSHOT
[warn] app2_2.10:1.0-SNAPSHOT
[warn] +- root:root_2.10:0.1-SNAPSHOT
[error] /myProject/apps/app1/app/views/activity/activitiesTable.scala.html:1: not found: type User
[error] @******************************************************************************
[error] ^
...
Я частично основал свою структуру на этом проекте: https://github.com/josh-padnick/play-multiproject-template и документ SBT: https://www.scala -sbt.org / 1.x / docs / Multi-Project.html
Обычное приложение не компилируется вообще. Зачем? Это хороший способ продолжить для моей цели?
Спасибо.
Edit:
Если я сделаю sbt; project common; compile
, ничего не произойдет:
[info] Updating {file:/myProject/}common...
[info] Resolving jline#jline;2.14.3 ...
[info] Done updating.
[success] Total time: 2 s, completed Jun 7, 2019 2:27:09 PM