리프트 웹 프레임 워크로 스칼라 sbt 프로젝트를 설정하려고합니다. 나는 sbt 웹 플러그인 : 유효하지 않은 키 : jetty-run (유사 : jetty-port, jetty-context, run)
- 스칼라 2.9.0-1
- SBT 0.10.1
- 리프트 2.3
- xsbt - 웹 플러그인 만 스칼라 2.8.1에 0.1.1 (참조을 사용하고 있습니다 질문의 끝)
(내가 아는 바로 최신 버전). 나는 다음과 같은 SBT 구성 파일을 구하는 http://d.hatena.ne.jp/k4200/20110711/1310354698 및 https://github.com/siasia/xsbt-web-plugin/blob/master/README.md을 따라 :
sbt.version=0.10.1
프로젝트/플러그인/build.sbt
resolvers += "Web plugin repo" at "http://siasia.github.com/maven2"
libraryDependencies <+= sbtVersion(v => "com.github.siasia" % "xsbt-web-plugin_2.8.1" % ("0.1.1-"+v))
프로젝트/빌드
프로젝트/build.properties. 스카치
import sbt._
import Keys._
object BuildSettings {
val buildOrganization = "xbaz"
val buildScalaVersion = "2.9.0-1"
val buildVersion = "0.0.1"
val buildSettings = Defaults.defaultSettings ++ Seq (
organization := buildOrganization,
scalaVersion := buildScalaVersion,
version := buildVersion)
}
object Resolvers {
val webPluginRepo = "Web plugin repo" at "http://siasia.github.com/maven2"
val jettyRepo = "Jetty Repo" at "http://repo1.maven.org/maven2/org/mortbay/jetty"
}
object Dependencies {
// web plugin
val webPluginDeps = Seq(
"org.mortbay.jetty" % "jetty" % "6.1.26" % "jetty", // The last part is "jetty" not "test".
"javax.servlet" % "servlet-api" % "2.5" % "provided->default"
)
val liftDeps = {
val liftVersion = "2.3" // I'll switch to 2.3 soon!
Seq(
"net.liftweb" % "lift-webkit_2.8.1" % liftVersion % "compile->default",
"net.liftweb" % "lift-mapper_2.8.1" % liftVersion % "compile->default"
)
}
val scalaTest = "org.scalatest" % "scalatest_2.9.0" % "1.6.1" % "test"
val apacheHttpClient = "org.apache.httpcomponents" % "httpclient" % "4.1.1"
val apacheHttpCore = "org.apache.httpcomponents" % "httpcore" % "4.1.1"
// Logging
lazy val grizzled = "org.clapper" % "grizzled-slf4j_2.8.1" % "0.5"
lazy val junit = "junit" % "junit" % "4.8" % "test"
lazy val logback_core = "ch.qos.logback" % "logback-core" % "0.9.24" % "compile" //LGPL 2.1
lazy val logback_classic = "ch.qos.logback" % "logback-classic" % "0.9.24" % "compile" //LGPL 2.1
lazy val log4j_over_slf4j = "org.slf4j" % "log4j-over-slf4j" % "1.6.1"
val logDeps = Seq(grizzled, log4j_over_slf4j, logback_core, logback_classic)
}
object MyBuild extends Build {
import com.github.siasia.WebPlugin._ // web plugin
import BuildSettings._
import Dependencies._
import Resolvers._
//End dependencies
lazy val root = Project("root", file(".") , settings = buildSettings ++
Seq(name := "foo")
) aggregate(core, cli, web)
// mainClass:= Some("Main"))
lazy val core : Project = Project("core", file("core"), delegates = root :: Nil, settings = buildSettings ++
Seq(
name := "foo-core",
libraryDependencies ++= logDeps ++ Seq(scalaTest, apacheHttpClient, apacheHttpCore)
)
)
lazy val cli: Project = Project("cli", file("cli"), settings = buildSettings ++
Seq(
name := "foo-cli",
libraryDependencies ++= logDeps ++ Seq(apacheHttpClient),
fork in run := true,
javaOptions in run += "-Djava.library.path=/home/jolivier/Projets/asknow/lib/jnotify-lib-0.93"
)) dependsOn(core) settings(
)
lazy val web: Project = Project("web", file("web"), settings = buildSettings ++
Seq (resolvers := Seq(webPluginRepo, jettyRepo),
name := "foo-http",
libraryDependencies ++= logDeps ++ webPluginDeps ++ liftDeps
) ++
webSettings
) dependsOn(core)
}
나는 SBT 부두-실행하려고 할 때 다음과 같은 오류 메시지가 얻을 :
[error] Not a valid command: jetty-run
[error] Not a valid project ID: jetty-run
[error] Not a valid configuration: jetty-run
[error] Not a valid key: jetty-run (similar: jetty-port, jetty-context, run)
[error] jetty-run
[error]
그래서 좀 jetty- * 명령은 내가 원하는 일을 존재하지만,하지 않는 것으로 나타났습니다, 그래서하도록되어 webSettings 인쇄를 이러한 모든 새로운 설정을 포함하고 있으며 여기에는 부두 - 컨텍스트 및 부두 - 항구뿐만 아니라 부두 - 구성 및 기타가 포함되지만 부두 진입은 포함되지 않습니다.
부두가 실행되지 않도록 잘못 됐습니다.
웹 플러그인이 현재 scala 2.8.1에만 있기 때문에 buildScalaVersion 변수를 변경했지만 scala-2.8.1로 전환하려고 시도했지만 아무 것도 변경하지 않았습니다. 너는 어떤 생각을 가지고 있니?
미리 도움 주셔서 감사합니다.
오, 나는 꽤 sbt에 새롭고 이런 종류의 미묘함을 얻지 못했고, 웹/부티크 런을 시도했기 때문에 cli/run으로 실행을 시작했지만 그 중 하나는 작동하지 않았습니다 ... 바이너리 비 호환성 때문에 scala-2.8.1로 전환해야했지만 지금은 좋아 보인다 :) 고마워! – jolivier
'잘못된 프로젝트 ID : web' 오류가 나타납니다. – Jus12