2016-06-08 3 views
1

Я пытался воспроизвести документацию по адресу: https://www.playframework.com/documentation/2.5.x/JavaEbeanPlayframework 2.5.3 ebean пакет com.avaje.ebean не существует

I настройки все, как это было описано в документации.

project\plugins.sbt: addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.0") 

build.sbt: 

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

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs, 
    "mysql" % "mysql-connector-java" % "5.1.18" 
) 

build.properties: 
sbt.version=0.13.11 

application.conf: 
    ebean.default="models.*" 

еще, когда я использую

import javax.persistence.*; 
import com.avaje.ebean.Model; 

в моем классе модели, я получаю исключение, javax.persistence и com.avaje не существует. Что здесь можно пропустить?

ответ

0

Это означает, что вы не добавляете зависимости в свой sbt-файл. Вы можете решить эту проблему путем добавления этих зависимостей как этот

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs, 
    "mysql" % "mysql-connector-java" % "5.1.18", 
    "org.avaje" % "ebean" % "2.7.3", 
    "javax.persistence" % "persistence-api" % "1.0.2" 
) 
+0

Большое спасибо Джерри. Это действительно устранило проблему. Мне было интересно, существует ли соглашение о том, как объявлять зависимости. Как узнать, что нужно определить. Есть ли какая-нибудь документация, на которую вы могли бы указать мне? –

+0

Я нашел способ, как определить соглашение об именовании SBT. Найдите пакет в http://mvnrepository.com/ и выберите соответствующий пакет. На странице результатов есть много вкладок, таких как «Maven, Gradle, SBT». Выберите вкладку SBT и отобразит правильный синтаксис для пакета. Я очень ценю вашу помощь Джерри! Спасибо! –

+0

@AnandJain отлично – Jerry

0

Хотя общепринятый ответ хороший быстро исправить, это не реально решить эту проблему (должным образом) для меня. Я прыгнул с Play 2.4.6 до 2.6.1 (так что мне никогда не приходилось иметь дело с 2.5.x), и мне никогда не нужно было объявлять ebean как зависимость, только как плагин.

Я использую addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.0.2") в плагинах.sbt и lazy val root = (project in file(".")).enablePlugins(PlayJava,PlayEbean) в build.sbt on Play 2.6.1. Несмотря на то, что ожидание ebean в com.avaje.ebean логично, фактически переместилось в пакет io.ebean при использовании плагина где-то между 2.4.6 и 2.6.1. Если я добавлю также зависимость от библиотеки, также можно импортировать ebean с com.avaje.ebean, но я не думаю, что это рекомендуемый способ.