Как включить плагин play-querydsl в Play 2.3?

Я безуспешно пытаюсь использовать плагин play-querydsl с Play 2.3. Я знаю, что система плагинов изменилась в Play 2.3, но мне интересно, есть ли способ использовать старый плагин Play 2.2 с Play 2.3.

На странице установки play-querydsl перечислены следующие шаги для включения подключаемого модуля для Play 2.2:

playJavaSettings ++ QueryDSLPlugin.queryDSLSettings

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

Однако, если я правильно понимаю, в Play 2.3 нет playJavaSettings (хотя он упоминается в О программе). Настройки SBT).

Есть ли способ использовать этот плагин из Play 2.3, не меняя плагин?


person Nathan    schedule 14.06.2014    source источник


Ответы (2)


Похоже, playJavaSettings и playScalaSettings были объединены в projectSettings в Play 2.3. Это весьма раздражает конфликт пространства имен с QueryDSLs projectSettings.

Вот свежий новый build.sbt для Play 2.3 Java:

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
)

Чтобы добавить настройки плагина, мне пришлось использовать полный путь projectSettings Play, чтобы избежать конфликта пространств имен, добавив эту строку:

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

Это можно сократить с помощью импорта, но что угодно. Затем вместо добавления второй строки, как указано в документах, я привязал .configs(QueryDSLPlugin.QueryDSL) к уже существующей root:

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

И он компилируется.

person Michael Zajac    schedule 14.06.2014
comment
Я использую более позднюю версию (3.3.4) QueryDSL, чем плагин play-querydsl, поэтому я обнаружил, что мне нужно поместить обе предложенные вами строки после строки libraryDependencies ++, иначе компилятор не найдет мой более новый файл jar QueryDSL. Как только я это сделал, все заработало. - person Nathan; 14.06.2014

Недавно была выпущена версия 0.1.2 плагина. С Play 2.3 включить его теперь очень просто, и для проекта Java по умолчанию это выглядит так:

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

Обратите внимание, что префикс QueryDSLPlugin больше не используется для настроек конфигурации.

person marvin82    schedule 29.03.2015