【问题标题】:How to enable play-querydsl plugin in Play 2.3?如何在 Play 2.3 中启用 play-querydsl 插件?
【发布时间】:2014-08-04 15:49:55
【问题描述】:

我正在尝试将 play-querydsl 插件与 Play 2.3 一起使用,但没有成功。我知道 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 中的这个插件?

【问题讨论】:

    标签: java playframework sbt playframework-2.3


    【解决方案1】:

    看起来 playJavaSettings 和 playScalaSettings 在 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)
    

    它会编译。

    【讨论】:

    • 我使用比 play-querydsl 插件更高版本的 QueryDSL (3.3.4),所以我发现我必须将您建议的两行都放在 libraryDependencies ++ 行之后,否则编译器不会找不到我更新的 QueryDSL jar 文件。一旦我这样做了,一切正常。
    【解决方案2】:

    该插件的0.1.2 版本最近已发布。使用 Play 2.3,启用它现在非常简单,默认的 Java 项目如下所示:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 2014-09-28
      • 2014-07-26
      相关资源
      最近更新 更多