Справка по плагину Scalate SBT 0.11.0 - PullRequest
1 голос
/ 14 декабря 2011

Я занимаюсь разработкой веб-приложения Scalatra для Scalate Jade и использую sbt 0.11.0

Я упаковывал веб-приложение с помощью "com.github.siasia" %% "xsbt-web-plugin"%" 0.1.2 ".

Я также экспериментировал с" com.zentrope "%%" xsbt-scalate-precompile-plugin "%" 1.6 "для компиляции файлов Jade.

К сожалению, если я использую xsbt-web-plugin для упаковки своей войны, он очищает целевой каталог от любых предварительно скомпилированных файлов Scalate.

Каков наилучший способ упаковки войны с предварительно скомпилированными файлами Scalate?

Ответы [ 2 ]

1 голос
/ 10 января 2012

Благодаря Кейту Ирвину, автору xsbt-scalate-precompile-plugin , теперь у меня есть решение моей проблемы.

Мои файлы Jade / Scalate находятся в каталогах webapp / WEB-INF / template и webapp / WEB-INF / scalate / layouts.

Я использую плагины xsbt-web-plugin и xsbt-scalate-precompile-plugin sbt.

  • xsbt-web-plugin предоставляет мне команду package-war.
  • xsbt-scalate-precompile-plugin предварительно компилирует мои файлы Jade.

В моем файле plugins.sbt.

resolvers += "Web plugin repo" at "http://siasia.github.com/maven2"    
addSbtPlugin("com.github.siasia" %% "xsbt-web-plugin" % "0.1.2")

resolvers += "zentrope" at "http://zentrope.com/maven"    
addSbtPlugin("com.zentrope" %% "xsbt-scalate-precompile-plugin" % "1.7")

В моем файле build.scala.

import WebPlugin._
import Keys._
import com.zentrope.ScalatePlugin._

...

// WebApp Settings
val webAppSettings = Seq(
  jettyPort := 8083,
  jettyContext := "/MyWebApp"
)

// Scalate Compile Settings
val scalateCompileSettings = scalateTemplateSettings ++ Seq(
  scalateTemplateDirectories in Compile <<= (scalateTemplateDirectories in Compile, baseDirectory) {
    (dirs, basedir) => dirs ++ Seq(new File(basedir, "/src/main/webapp/WEB-INF/template"),
      new File(basedir, "/src/main/webapp/WEB-INF/scalate/layouts"))
  }
)

...

lazy val MyWebApp =
    Project("MyWebApp", file("MyWebApp"), settings = shared ++ webAppSettings ++ scalateCompileSettings ++ Seq(
      resolvers ++= Seq(sonatypeNexusReleases, scalaToolsNexus, novusRels, scalaToolsSnapshots),
      libraryDependencies ++= Seq(
        scalatra,
        scalate,
        ...
      )
    ))

Плагин Keiths версии 1.7 позволяет устанавливать определенные каталоги шаблонов, что мне действительно нужно. Единственное предостережение в том, что я должен выполнить очистку прямо перед вызовом package-war или перед удалением моих скомпилированных файлов Jade.

0 голосов
/ 14 декабря 2011

Я не уверен, что понимаю вас здесь. Все, что является источником, должно быть в src. Никогда не надо ничего вкладывать в target. Ресурсы естественно пошли бы в src/main/resources. Итак, являются ли эти «предварительно скомпилированные» файлы чем-то, что создается автоматически, или они должны были находиться в каталоге ресурсов?

...