You are viewing the documentation for the 2.1.5 release in the 2.1.x series of releases. The latest stable release series is 2.4.x.
§SBT セッティングについて
§sbt セッティングについて
sbt ビルドスクリプトはプロジェクトの設定を定義します。sbt ドキュメント に記述されているように、プロジェクト独自のカスタム設定を定義することも可能です。特に sbt の セッティング について慣れる事は有効です。
基本的な設定を行うには、 :=
演算子を使います:
val main = PlayProject(appName, appVersion, appDependencies).settings(
confDirectory := "myConfFolder"
)
§Java アプリケーション向けのデフォルトセッティング
Play は Java ベースのアプリケーションに適したデフォルト設定のセットを定義しています。これらを有効にするには、アプリケーション定義に設定の defaultJavaSettings
セットを追加してください:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA)
これらのデフォルト設定は、生成されるテンプレート向けに大部分のデフォルト import 文を定義します。例えば java.lang.*
をインポートするので、Long
のような型はデフォルトで Scala のものではなく Java のものになります。java.util.*
もインポートするので、デフォルトのコレクションライブラリは Java のものになります。
§Scala アプリケーション向けのデフォルトセッティング
Play は Scala ベースのアプリケーションに適したデフォルト設定のセットを定義しています。これらを有効にするには、アプリケーション定義に設定の defaultScalaSettings
セットを追加してください:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA)
これらのデフォルト設定は、生成されるテンプレート向けにデフォルト import 文 (国際化メッセージや、主要な API) を定義します。
§デフォルト値の Play プロジェクトセッティング
Project
の代わりに PlayProject
を使って sbt プロジェクトを定義した場合、設定はデフォルト値のセットになります。以下がデフォルト設定です:
resolvers ++= Seq(
"Typesafe Releases Repository" at "http://repo.typesafe.com/typesafe/releases/",
"Typesafe Snapshots Repository" at "http://repo.typesafe.com/typesafe/snapshots/"
),
target <<= baseDirectory / "target",
sourceDirectory in Compile <<= baseDirectory / "app",
sourceDirectory in Test <<= baseDirectory / "test",
confDirectory <<= baseDirectory / "conf",
resourceDirectory in Compile <<= baseDirectory / "conf",
scalaSource in Compile <<= baseDirectory / "app",
scalaSource in Test <<= baseDirectory / "test",
javaSource in Compile <<= baseDirectory / "app",
javaSource in Test <<= baseDirectory / "test",
distDirectory <<= baseDirectory / "dist",
libraryDependencies += "play" %% "play" % play.core.PlayVersion.current,
libraryDependencies += "play" %% "play-test" % play.core.PlayVersion.current % "test",
parallelExecution in Test := false,
testOptions in Test += Tests.Setup { loader =>
loader.loadClass("play.api.Logger").getMethod("init", classOf[java.io.File]).invoke(null, new java.io.File("."))
},
testOptions in Test += Tests.Cleanup { loader =>
loader.loadClass("play.api.Logger").getMethod("shutdown").invoke(null)
},
testOptions in Test += Tests.Argument("sequential", "true"),
testOptions in Test += Tests.Argument("junitxml", "console"),
testListeners <<= (target, streams).map((t, s) => Seq(new eu.henkelmann.sbt.JUnitXmlTestsListener(t.getAbsolutePath, s.log))),
testResultReporter <<= testResultReporterTask,
testResultReporterReset <<= testResultReporterResetTask,
sourceGenerators in Compile <+= (confDirectory, sourceManaged in Compile, routesImport) map RouteFiles,
// Adds config/routes to continious triggers
watchSources <+= confDirectory map { _ / "routes" },
sourceGenerators in Compile <+= (sourceDirectory in Compile, sourceManaged in Compile, templatesTypes, templatesImport) map ScalaTemplates,
// Adds views template to continious triggers
watchSources <++= baseDirectory map { path => ((path / "app") ** "*.scala.*").get },
commands ++= Seq(shCommand, playCommand, playRunCommand, playStartCommand, h2Command, classpathCommand, licenseCommand, computeDependenciesCommand),
shellPrompt := playPrompt,
copyResources in Compile <<= (copyResources in Compile, playCopyAssets) map { (r, pr) => r ++ pr },
mainClass in (Compile, run) := Some(classOf[play.core.server.NettyServer].getName),
compile in (Compile) <<= PostCompile,
dist <<= distTask,
computeDependencies <<= computeDependenciesTask,
playVersion := play.core.PlayVersion.current,
playCommonClassloader <<= playCommonClassloaderTask,
playCopyAssets <<= playCopyAssetsTask,
playCompileEverything <<= playCompileEverythingTask,
playPackageEverything <<= playPackageEverythingTask,
playReload <<= playReloadTask,
playStage <<= playStageTask,
cleanFiles <+= distDirectory,
ebeanEnabled := false,
logManager <<= extraLoggers(PlayLogManager.default),
ivyLoggingLevel := UpdateLogging.DownloadOnly,
routesImport := Seq.empty[String],
playIntellij <<= playIntellijTask,
playHash <<= playHashTask,
// Assets
playAssetsDirectories := Seq.empty[File],
playAssetsDirectories <+= baseDirectory / "public",
resourceGenerators in Compile <+= LessCompiler,
resourceGenerators in Compile <+= CoffeescriptCompiler,
resourceGenerators in Compile <+= JavascriptCompiler,
lessEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.less") --- base / "assets" ** "_*")),
coffeescriptEntryPoints <<= (sourceDirectory in Compile)(base => base / "assets" ** "*.coffee"),
javascriptEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.js") --- (base / "assets" ** "_*"))),
lessOptions := Seq.empty[String],
coffeescriptOptions := Seq.empty[String],
closureCompilerOptions := Seq.empty[String],
// Templates
templatesImport := Seq("play.api.templates._", "play.api.templates.PlayMagic._"),
templatesTypes := {
case "html" => ("play.api.templates.Html", "play.api.templates.HtmlFormat")
case "txt" => ("play.api.templates.Txt", "play.api.templates.TxtFormat")
case "xml" => ("play.api.templates.Xml", "play.api.templates.XmlFormat")
})
Next: ライブラリの依存性管理