首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt web插件:非有效键: jetty-run (类似: jetty-port,jetty-jetty,run)

sbt web插件:非有效键: jetty-run (类似: jetty-port,jetty-jetty,run)
EN

Stack Overflow用户
提问于 2011-08-14 11:52:05
回答 1查看 4.7K关注 0票数 7

我正在尝试用lift web框架来设置scala项目。我在用

2.3

  • xsbt-web-plugin
  • scala 2.9.0-1
  • sbt 0.10.1
  • lift 0.1.1 (仅限于Scala2.8.1,见问题结束)

(我知道最近的版本)。我遵循http://d.hatena.ne.jp/k4200/20110711/1310354698https://github.com/siasia/xsbt-web-plugin/blob/master/README.md来获得以下sbt配置文件:

项目/建筑。

sbt.version=0.10.1

project/plugins/build.sbt

代码语言:javascript
复制
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.scala

代码语言:javascript
复制
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 jetty运行时,我会得到以下错误消息:

代码语言:javascript
复制
[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,它应该包含所有这些新设置,它包含jetty上下文和jetty端口,以及jetty-配置和其他命令,但不包含jetty-run :s。

我没去码头跑有什么错?

我尝试切换到scala-2.8.1,因为web插件目前只在Scala2.8.1上,方法是更改我的buildScalaVersion变量,但这并没有改变任何事情。你有什么想法吗?

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-14 14:13:38

任务是聚合的,命令不是聚合的。

jetty-run是一个命令。它只能在带有web插件设置的子项目的上下文中使用。

代码语言:javascript
复制
> project web
> jetty-run

一旦它运行,您可以使用prepare-webapp任务重新部署webapp。这可以从root项目的上下文中运行,因为它聚合web项目。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7056635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档