2011-08-14 10 views
8

私はリフトのWebフレームワークでscala sbtプロジェクトを設定しようとしています。私はsbt webプラグイン:有効なキーではありません:jetty-run(類似:jetty-port、jetty-context、run)

  • スカラ2.9.0-1
  • のsbt 0.10.1
  • リフトのみのScala 2.8.1である2.3
  • xsbt-ウェブプラグイン0.1.1(、参照を使用しています質問の末尾)

(私が知っている非常に最近のバージョン)。

プロジェクト/ build.properties

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)) 

プロジェクト/ビルドします: は、私は次のsbtの設定ファイルを取得するためにhttp://d.hatena.ne.jp/k4200/20110711/1310354698https://github.com/siasia/xsbt-web-plugin/blob/master/README.mdを追いました。スカラ

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- *コマンドが存在するが、ではない私が欲しい1ので、私がすることになっているwebSettingsを印刷しないことに気づきましたこれらの新しい設定はすべて含まれています。また、埠頭と埠頭、桟橋の設定などが含まれていますが、埠頭はありません。

桟橋を運行していないと私は間違っていましたか?

webプラグインは現在scala 2.8.1のみで、buildScalaVersion変数を変更することでscala-2.8.1への切り替えを試みましたが、何も変更されませんでした。あなたは何か考えていますか?

ご協力いただきありがとうございます。

答えて

5

タスクは集約されています。コマンドはそうではありません。

jetty-runはコマンドです。これは、Webプロジェクトの設定でサブプロジェクトのコンテキストでのみ使用できます。

> project web 
> jetty-run 

は、それが実行されると、あなたは、Webアプリケーションを再デプロイするprepare-webappタスクを使用することができます。これは、Webプロジェクトを集約するため、rootプロジェクトのコンテキストから実行できます。

+0

オハイオ州オハイオ州、私はかなりsbtに新しく、この種の微妙なことを得ていない、私はまた、私はcli/runで実行を開始するので、Web/jetty-runを試みたが、どちらもうまくいきませんでした。 バイナリの非互換性のためにscala-2.8.1に切り替える必要がありましたが、今はよく見えます:) ありがとうございます! – jolivier

+3

「有効ではないプロジェクトID:web」エラーが表示されます – Jus12

関連する問題