मैं लिफ्ट वेब फ्रेमवर्क के साथ एक स्कैला एसबीटी प्रोजेक्ट स्थापित करने की कोशिश कर रहा हूं। मैंएसबीटी वेब प्लगइन: वैध कुंजी नहीं: जेटी-रन (समान: जेटी-पोर्ट, जेटी-कॉन्टेक्ट, रन)
उपयोग कर रहा हूँ- स्केला 2.9.0-1
- एसबीटी 0.10.1
- लिफ्ट 2.3
- xsbt-वेब-प्लगइन 0.1.1 (जो केवल स्केला 2.8.1 पर है, को देखने के प्रश्न का अंत)
(हाल के संस्करण मुझे पता है)। मैं http://d.hatena.ne.jp/k4200/20110711/1310354698 और https://github.com/siasia/xsbt-web-plugin/blob/master/README.md पीछा निम्नलिखित एसबीटी विन्यास फाइल प्राप्त करने के लिए:
परियोजना/build.properties
sbt.version=0.10.1
परियोजना/plugins/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))
परियोजना/बनाएँ। स्कैला
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)
}
जब मैं एसबीटी घाट रन की कोशिश मैं निम्न त्रुटि संदेश मिलता है:
[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 जो माना जाता है मुद्रित इन सभी नई सेटिंग्स में शामिल हैं और इसमें जेटी-संदर्भ और जेटी-पोर्ट, साथ ही जेटी-कॉन्फ़िगरेशन और अन्य शामिल हैं, लेकिन जेटी-रन नहीं हैं: एस।
जेटी रन चलाने के लिए मुझे क्या गलत लगा?
मैंने स्कैला-2.8.1 पर स्विच करने का प्रयास किया क्योंकि वेब प्लगइन वर्तमान में केवल स्केल 2.8.1 पर है, मेरे buildScalaVersion चर बदलकर, लेकिन कुछ भी नहीं बदला। क्या तुम्हारे पास कोई विचार है?
आपकी मदद के लिए अग्रिम धन्यवाद
ओह ठीक है, मैं एसबीटी के लिए काफी नया हूं और इस तरह की सूक्ष्मता नहीं मिली, मैंने वेब/जेटी-रन की भी कोशिश की क्योंकि मैं क्ली/रन के साथ दौड़ना शुरू करता हूं लेकिन यह काम नहीं करता है ... मुझे बाइनरी अक्षमताओं के लिए स्कैला-2.8.1 पर भी स्विच करना पड़ा लेकिन यह अब अच्छा लग रहा है :) बहुत बहुत धन्यवाद! – jolivier
मुझे 'मान्य प्रोजेक्ट आईडी नहीं है: वेब' त्रुटि – Jus12