【问题标题】:play2 using main project views/controllers/models in submodule/subproject and inverselyplay2 在子模块/子项目中使用主项目视图/控制器/模型,反之亦然
【发布时间】:2014-09-10 10:59:01
【问题描述】:

我有:

  • 主要项目
  • 名为“购物”的子项目

我想在子项目中使用来自主项目的视图。 我的子项目控制器代码:

package controllers.shopping;

public class Application extends Controller {

  public static Result index() {
      return ok(views.html.confirmation.render("ok"));
  }
}

还有我的主要构建文件

lazy val shopping = project.in(file("modules/shopping"))

val main = project.in(file("."))
    .dependsOn(shopping).aggregate(shopping)

我在子模块 common 中的模型类:

@Entity
public class AppMode {
    public static AppMode getCurrentConfigurationEntry() {
        return JPA.em().find(AppMode.class, 1L);
    }
}

【问题讨论】:

    标签: java scala views playframework-2.1 subproject


    【解决方案1】:

    由于 main 依赖于购物,因此添加依赖项反过来也会创建循环依赖项,因此 sbt 将无法知道首先构建哪个项目。

    将您想要的逻辑分解为您依赖于 shopping 和 main 的第二个子项目,您将能够在 shopping 和 main 中访问它们。

    【讨论】:

    • 所以您建议为所有共享(在所有子模块之间)逻辑创建子项目“main”。那么我应该在第一个项目(而不是模块目录)中放入什么?
    • 我宁愿称它为“普通”或类似的东西,而不是“主要”。我可能还会尝试将根项目保留为没有源的超级项目,然后将其保留为具有实际代码的子模块。 (我认为这是处理多模块 sbt 项目的最佳实践)
    • 感谢您的帮助。我会听从你的指示:D
    • 如何将库添加到子项目。 F.e. jpa 图书馆。我应该将依赖关系添加到哪个版本以及如何导入到源代码中?
    • 子项目需要它来进行编译和测试,而最终项目需要它来运行时。查看 sbt 教程/文档以获得更好的理解:scala-sbt.org/0.13/tutorial/Multi-Project.html
    猜你喜欢
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2013-10-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多