如何在Play 2.3中启用play-querydsl插件?

时间:2014-06-14 03:14:52

标签: java playframework sbt playframework-2.3

我试图在Play 2.3中使用play-querydsl插件但没有成功。我知道插件系统在Play 2.3中已经改变了,但是我想知道是否有任何方法可以在Play 2.3中使用旧的Play 2.2插件。

The play-querydsl's Installation page列出了启用Play 2.2插件的以下步骤:

playJavaSettings ++ QueryDSLPlugin.queryDSLSettings

val current = project.in(file(".")).configs(QueryDSLPlugin.QueryDSL)

但是,如果我理解正确,Play 2.3中没有playJavaSettings(尽管About SBT Settings中提到了它)。

有没有办法在不更改插件的情况下使用Play 2.3中的这个插件?

2 个答案:

答案 0 :(得分:3)

看起来playJavaSettingsplayScalaSettings在Play 2.3中合并为projectSettings。这非常令人讨厌地与QueryDSL projectSettings发生命名空间冲突。

这是Play 2.3 Java的全新build.sbt

name := """javatest2.3"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  javaWs
)

要添加插件设置,我必须使用Play的projectSettings的完整路径来避免命名空间冲突,添加以下行:

com.typesafe.sbt.SbtNativePackager.projectSettings ++ QueryDSLPlugin.queryDSLSettings

这可以通过导入缩短,但无论如何。然后,我没有添加文档中所述的第二行,而是将.configs(QueryDSLPlugin.QueryDSL)链接到已存在的root

lazy val root = (project in file(".")).enablePlugins(PlayJava).configs(QueryDSLPlugin.QueryDSL)

它编译。<​​/ p>

答案 1 :(得分:1)

该插件的版本0.1.2最近已发布。使用Play 2.3,启用它现在已经很简单了,默认的Java项目就像:

lazy val root = (project in file(".")).enablePlugins(PlayJava, QueryDSLPlugin)

请注意,QueryDSLPlugin前缀现在不再用于配置设置。