如何将Play 2.2 Scala应用程序创建为SBT子项目

安尼尔森

我正在尝试创建一个Scala应用程序,该应用程序由一个库项目(我们称之为common),一个Thrift服务器项目(我们称之为server)和一个Play网络应用程序项目(以下称为web)组成。这三个都是用Scala编写的,并使用sbt构建。

我的项目结构如下所示:

myproject/
-common/
  ...
-server/
  ...
-web/
  -app/
  -conf/
  ...
-project/
  -Build.scala
  -build.properties
-build.sbt

我的build.sbt文件(简化了一点)如下所示:

import play.Project._

name := "myproject"

version := "1.0-SNAPSHOT"

lazy val common = project

lazy val web = project
    .settings(playScalaSettings: _*)
    .dependsOn(common)

lazy val server = project
    .dependsOn(common)

lazy val root = project.in(file("."))
    .aggregate(common, web, server)

这样做的问题是根项目不是Play项目,因此该play命令不起作用(错误提示为

java.lang.RuntimeException: */*:playRunHooks is undefined.
at scala.sys.package$.error(package.scala:27)

如果我在SBT文件中的该行playScalaSettings之后插入该行,则可以通过使根项目看起来像Play项目来解决此version问题,但是我还有另一个问题:该play run命令尝试运行根项目,而不是web子项目。显然,该play run命令在web子目录中运行时不起作用,因为那里没有描述项目及其依赖项的SBT文件。

我正在寻找一种解决方案,使我可以保留此项目结构(这意味着Play项目是我的应用程序中许多子项目之一),同时保留所有Play框架的热度,例如在代码更改(甚至相关库中的代码)时进行热更新。像common)。

我以为我找到了解决方案,方法是运行play以获取交互式控制台,然后

 project web
 run

可以,但是在命令行上不起作用。play web/run由于某种原因,运行根级别run命令,如上所述,该命令不起作用,因为根应用程序不是Play应用程序。

注意:以前在Play Framework的Play 2.0上下文中曾问过一个类似的问题,即SBT非根模块,但答案并不令人满意,我也不认为从Play 2.2开始它还是正确的。

塞巴斯蒂安·洛伯(Sebastien Lorber)

如果

 play (entering shell)
 project web
 run

起作用,那么您可以从命令行使其起作用:

 play "project web" "run"

您可以在命令行中执行任何操作,而在Shell中则可以执行任何操作。

我具有相同的项目结构,这对我来说是一种行之有效的方法。

顺便说一句,我不认为热门游戏与Play有关。它是Play使用的SBT提供的增量编译。我认为play命令只是一些被黑的SBT启动器。

以下命令对我来说很好用:

 sbt "project web" "run"

并通过热重装启动Play项目。


我想你甚至可以使用

 sbt "project web" "~run"

每当您更改源文件时,它将尝试重新编译,而不是等待浏览器刷新,这将使您赢得一些时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Maven生成的GAE骨架变形为2模块应用程序?

来自分类Dev

如何将 Angular 2 应用程序部署为独立的(使用 dist 文件夹)

来自分类Dev

如何使路线方法在Play 2.x子项目中起作用?

来自分类Dev

如何将JVM参数传递给使用Inno Setup创建的本机JavaFX 2应用程序

来自分类Dev

使用PM2运行Play Scala应用程序

来自分类Dev

记录Play!2 Scala应用程序的请求时间

来自分类Dev

如何将 Vuetify 更新为使用 Vue-cli-2 创建的项目

来自分类Dev

球衣2:如何将参数从web.xml传递到应用程序?

来自分类Dev

如何将mongoDB连接到angular2应用程序?

来自分类Dev

如何将Dockerfile和应用程序文件部署到boot2docker

来自分类Dev

如何将Logger映射到spring J2ee应用程序?

来自分类Dev

如何将Dagger2集成到GWT应用程序中?

来自分类Dev

如何将qrcode-generator导入Angular 2应用程序?

来自分类Dev

如何将Cordova应用程序从Angular Dart 1转换为Angular 2?

来自分类Dev

如何将React Native应用程序与Spring Boot Oauth2集成

来自分类Dev

如何将Rails应用程序部署到EC2(Amazon)

来自分类Dev

如何将qrcode-generator导入Angular 2应用程序?

来自分类Dev

如何将Web API 2 Web应用程序分发给我的客户?

来自分类Dev

如何将日历组件插入到 Angular 2 应用程序中?

来自分类Dev

如何使用build.sbt(不是Build.scala)将SecureSocial添加到Play 2.x项目

来自分类Dev

解决Play 2 Java Framework中子项目与根项目之间的模板名称冲突

来自分类Dev

如何在OpenShift中部署Scala Play 2应用程序?

来自分类Dev

如何将2个项目推送到数组

来自分类Dev

如何将2列转置为行

来自分类Dev

awk如何将参数$ 2设置为$ b?

来自分类Dev

如何将编译器更新为Swift 2?

来自分类Dev

如何将 FTexture2DRHIRef 导出为 png?

来自分类Dev

如何将 2 个 xpath 合二为一

来自分类Dev

如何将 2 个 mysql 列订购为 1

Related 相关文章

  1. 1

    如何将Maven生成的GAE骨架变形为2模块应用程序?

  2. 2

    如何将 Angular 2 应用程序部署为独立的(使用 dist 文件夹)

  3. 3

    如何使路线方法在Play 2.x子项目中起作用?

  4. 4

    如何将JVM参数传递给使用Inno Setup创建的本机JavaFX 2应用程序

  5. 5

    使用PM2运行Play Scala应用程序

  6. 6

    记录Play!2 Scala应用程序的请求时间

  7. 7

    如何将 Vuetify 更新为使用 Vue-cli-2 创建的项目

  8. 8

    球衣2:如何将参数从web.xml传递到应用程序?

  9. 9

    如何将mongoDB连接到angular2应用程序?

  10. 10

    如何将Dockerfile和应用程序文件部署到boot2docker

  11. 11

    如何将Logger映射到spring J2ee应用程序?

  12. 12

    如何将Dagger2集成到GWT应用程序中?

  13. 13

    如何将qrcode-generator导入Angular 2应用程序?

  14. 14

    如何将Cordova应用程序从Angular Dart 1转换为Angular 2?

  15. 15

    如何将React Native应用程序与Spring Boot Oauth2集成

  16. 16

    如何将Rails应用程序部署到EC2(Amazon)

  17. 17

    如何将qrcode-generator导入Angular 2应用程序?

  18. 18

    如何将Web API 2 Web应用程序分发给我的客户?

  19. 19

    如何将日历组件插入到 Angular 2 应用程序中?

  20. 20

    如何使用build.sbt(不是Build.scala)将SecureSocial添加到Play 2.x项目

  21. 21

    解决Play 2 Java Framework中子项目与根项目之间的模板名称冲突

  22. 22

    如何在OpenShift中部署Scala Play 2应用程序?

  23. 23

    如何将2个项目推送到数组

  24. 24

    如何将2列转置为行

  25. 25

    awk如何将参数$ 2设置为$ b?

  26. 26

    如何将编译器更新为Swift 2?

  27. 27

    如何将 FTexture2DRHIRef 导出为 png?

  28. 28

    如何将 2 个 xpath 合二为一

  29. 29

    如何将 2 个 mysql 列订购为 1

热门标签

归档