【问题标题】:Play framework with dependency on independent Hibernate project?播放依赖于独立 Hibernate 项目的框架?
【发布时间】:2014-04-03 18:53:35
【问题描述】:

我目前正在学习 Play 框架,但很快就遇到了一些麻烦。

我有一个独立的 Java 项目,它使用 Hibernate 从 MySQL 数据库中持久化和获取数据。这个项目充满了 DTO 和 DAO。

我认为在我的新 Play 框架项目中引用 Hibernate 项目是个好主意,因此可以通过它利用不同的 DAO 和 DTO。

一切都在 Eclipse 中编译,但是在浏览器中运行我的 Play 应用程序时,我收到一个错误,即找不到包 com.path.to.hibernate.project.package。

在 Play 框架中是否有引用其他项目的秘密方法,或者我只是做错了?我有点喜欢将 Hibernate 的东西与 Play 框架的东西分开的想法。

如果您认为我应该对此采取不同的方法,我会全力以赴。

谢谢。

编辑:

build.sbt(相当于 Build.scala?)

name := "klepp_rc_play"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  "mysql" % "mysql-connector-java" % "5.1.29"
)     

play.Project.playJavaSettings

application.conf

...
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/play"
db.default.user=****
db.default.password=****

ebean.default="models.*"
...

conf/META-INF/persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="defaultPersistenceUnit"
        transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>DefaultDS</non-jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>

</persistence>

【问题讨论】:

  • 向我们展示一些配置文件。至少一个Build.scala。这在我看来是一个sbt 问题。
  • 感谢您的回复。我现在已经编辑了几个配置文件。据我所知,build.sbt 相当于 Build.scala?
  • 差不多。
  • 可能你在项目的eclipse中设置了依赖,但是sbt中没有设置。您必须告诉您的应用程序您的本地模块。例如看这个答案:stackoverflow.com/questions/8330149/…
  • 再次感谢。我可以从该示例中看到使用了 Build.scala 文件。除了我的 build.sbt 文件之外,我还能有一个这样的 Build.scala 文件吗?如果不是,请给我一个示例,说明如何以 build.sbt 友好的方式定义根项目?

标签: hibernate playframework playframework-2.2


【解决方案1】:

你的问题涉及sbt的一些知识,我什至不会说这只是基本的东西。理想情况下,您希望使用 sbt 构建您的独立项目,然后从您的 play 应用程序中引用。

这是我一开始会做的事情,然后随着你使用sbt 的进展,你可以改进它。

答,以最适合您的方式构建您的独立项目。这甚至可能意味着您只需从 eclipse 导出一个jar 文件(是的,有些人会认为这是魔鬼的行为,但我们只是想启动它)。但请注意它的所有依赖项!然后将这个jar 放入您的播放应用程序的lib 文件夹中(如果没有这样的文件夹,请创建一个)。它将自动放在类路径上。现在您也可以将您的依赖项放入此文件夹中,或者将它们列在您的build.sbt 中。

B,如果您使用 maven 构建应用程序,您可以像往常一样在 build.sbt 中引用您的项目(“groupId”%“artifactId”%“version”)。但是您应该将本地存储库添加到您的build.sbt。操作方法如下:SBT doesn't find file in local maven repository although it's there

C,将您的独立项目转换为sbt项目,然后您可以轻松管理其构建过程。

现在,如果您想在此过程中修改您的独立项目,可能值得选择 C 选项。否则,如果您只是想开始了解 Play Framework,请使用 AB。但是您还需要了解sbt

【讨论】:

  • 非常感谢。我设法让选项 A 起作用。无论如何,我可能正在研究 sbt,因为它听起来更加健壮和整洁:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 2015-07-18
  • 2014-05-04
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多