Play 2.3.7 sbt 多项目编译问题
Play 2.3.7 sbt multiproject compiler issue
我们正在使用 Play 框架 2.3.7 并使用 sbt(sbt 版本 0.13.5)设置了一个多项目,它由四个模块组成。
在项目根目录的 build.sbt 文件中,我们定义了模块:
lazy val common = (project in file("modules/common")).enablePlugins(PlayJava, SbtWeb)
lazy val store = (project in file("modules/store")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val catalog = (project in file("modules/catalog")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val backend = (project in file("modules/backend")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val root = (project in file(".")).enablePlugins(PlayJava, SbtWeb).aggregate(common, store, catalog, backend).dependsOn(common, store, catalog, backend)
如果我们尝试 运行 我们的应用程序
activator run
它编译应用程序没有错误。在主页上的第一个请求之后,它再次开始编译整个项目……最多四次。
这需要很长时间,但之后一切正常。
那是什么原因,项目编译那么频繁?还有其他人偶然发现了这个问题吗?
谢谢。
在更新到 2.3.7 with ebean persistence-layer 后,我的项目出现了同样的问题。
我注意到 一些 类 总是被重新编译 尽管没有对它们进行任何更改。这只发生在使用注释 @com.avaje.ebean.annotation.Transactional
.
的 @Entity
-类 上
不幸的是,使用注释 @play.db.ebean.Transactional
是行不通的,它不会在单个事务中执行数据库命令。不确定,里面是否有 still a bug,或者 仅 对 controller-类 有效,但对 @Entity
-[=34= 无效].
然而,为我解决问题的是使用 try/finally
块创建交易,如 ebean-documentation.
中所述
你碰巧使用ebean作为持久层吗?
删除 @transactional
-annnotation 是否解决了您的问题?
我们正在使用 Play 框架 2.3.7 并使用 sbt(sbt 版本 0.13.5)设置了一个多项目,它由四个模块组成。 在项目根目录的 build.sbt 文件中,我们定义了模块:
lazy val common = (project in file("modules/common")).enablePlugins(PlayJava, SbtWeb)
lazy val store = (project in file("modules/store")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val catalog = (project in file("modules/catalog")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val backend = (project in file("modules/backend")).enablePlugins(PlayJava, SbtWeb).dependsOn(common)
lazy val root = (project in file(".")).enablePlugins(PlayJava, SbtWeb).aggregate(common, store, catalog, backend).dependsOn(common, store, catalog, backend)
如果我们尝试 运行 我们的应用程序
activator run
它编译应用程序没有错误。在主页上的第一个请求之后,它再次开始编译整个项目……最多四次。 这需要很长时间,但之后一切正常。
那是什么原因,项目编译那么频繁?还有其他人偶然发现了这个问题吗?
谢谢。
在更新到 2.3.7 with ebean persistence-layer 后,我的项目出现了同样的问题。
我注意到 一些 类 总是被重新编译 尽管没有对它们进行任何更改。这只发生在使用注释 @com.avaje.ebean.annotation.Transactional
.
@Entity
-类 上
不幸的是,使用注释 @play.db.ebean.Transactional
是行不通的,它不会在单个事务中执行数据库命令。不确定,里面是否有 still a bug,或者 仅 对 controller-类 有效,但对 @Entity
-[=34= 无效].
然而,为我解决问题的是使用 try/finally
块创建交易,如 ebean-documentation.
你碰巧使用ebean作为持久层吗?
删除 @transactional
-annnotation 是否解决了您的问题?