Z několika odkazů nalezených na internetu a také na základě odpovědi cvogt je to minimum, co musíte udělat.
Upozorňujeme, že toto je obecné řešení pro sbt. Pokud máte co do činění s herním rámcem, může být snazší provést tento úkol pomocí příslušného pluginu
Nejprve potřebujete nový projekt sbt kvůli všem závislostem knihoven, na které je potřeba odkazovat, aby mohl běžet generátor hladkého zdroje.
Vytvořte nový projekt sbt pomocí tohoto návodu:http://scalatutorials.com/beginner/2013/07/18/getting-started -with-sbt/
Používejte raději metodu Nastavení pomocí giter8
Pokud to náhodou funguje s Intellij, musíte vytvořit soubor project/plugins.sbt
a vložte dovnitř tohoto řádku:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0")
.
Proveďte gen-idea
v sbt k vygenerování projektu intellij.
S giter8 získáte automaticky generovaný soubor ProjectNameBuild.scala ve složce projektu. Otevřete toto a zahrňte alespoň tyto závislosti knihovny:
libraryDependencies ++= List(
"mysql" % "mysql-connector-java" % "5.1.27",
"com.typesafe.slick" %% "slick" % "2.0.0",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"org.scala-lang" % "scala-reflect" % scala_version
)
kde verze scala je proměnná private val scala_version = "2.10.3"
Nyní vytvořte vlastní generátor zdrojového kódu, který vypadá takto:
import scala.slick.model.codegen.SourceCodeGenerator
object CustomSourceCodeGenerator {
import scala.slick.driver.JdbcProfile
import scala.reflect.runtime.currentMirror
def execute(url: String,
jdbcDriver: String,
user: String,
password: String,
slickDriver: String,
outputFolder: String,
pkg: String) = {
val driver: JdbcProfile = currentMirror.reflectModule(
currentMirror.staticModule(slickDriver)
).instance.asInstanceOf[JdbcProfile]
driver.simple.Database.forURL(
url,
driver = jdbcDriver,
user = user,
password = password
).withSession {
implicit session =>
new SourceCodeGenerator(driver.createModel).writeToFile(slickDriver, outputFolder, pkg)
}
}
}
Nakonec to musíte zavolat execute
metoda uvnitř hlavního objektu projektu. Najděte soubor ProjectName.scala, který byl automaticky vygenerován giter8.
Uvnitř najdete println
zavolejte, protože toto je pouze aplikace „ahoj světe“. Nad println
nazvěte něco takového:
CustomSourceCodeGenerator.execute(
url = "jdbc:mysql://127.0.0.1/SOME_DB_SCHEMA?characterEncoding=UTF-8&useUnicode=true",
slickDriver = "scala.slick.driver.MySQLDriver",
jdbcDriver = "com.mysql.jdbc.Driver",
outputFolder = "/some/path",
pkg = "com.pligor.server",
user = "root",
password = "xxxxxyourpasswordxxxxx"
)
Tímto způsobem pokaždé, když spustíte sbt run
třídy Table požadované Slickem budete generovat automaticky