0

マルチプロジェクトの sbt ビルドがあり、https://github.com/softprops/coffeescripted-sbtを使用して coffeescript を javascript にコンパイルしたいのですが、タスクを実行していません。

コードはhttps://github.com/jeffmay/angular-play-multimodule-seed/tree/stackoverflow-17289043から取得されました

build.sbt を使用

推奨されていませんが、このプラグインが機能するかどうかをテストするために、プロジェクト ディレクトリにある build.sbt ファイルをプロジェクト オブジェクトと混合しました。

build.sbt

seq(coffeeSettings: _*)

私が走ったとき:

$ sbt
[info] Loading project definition from /Users/jeffmay/code/righttrack/project
[info] Set current project to root (in build file:/Users/jeffmay/code/righttrack/)
> coffee
[success] Total time: 0 s, completed Jun 24, 2013 11:40:37 PM
> show coffee
[info] ArrayBuffer()
[success] Total time: 0 s, completed Jun 24, 2013 11:40:52 PM
> project web
[info] Set current project to web (in build file:/Users/jeffmay/code/righttrack/)
[web] $ coffee
[error] Not a valid command: coffee
[error] No such setting/task
[error] coffee
[error]       ^
[web] $

とはArrayBuffer()どういう意味ですか? それは暗黙の失敗ですか (coffeescript が返される最後の式がreturn;of になりnullますか?)

マルチプロジェクトのセットアップ

いくつかのコンテキストでは、私のビルドは次のように分割されています...

project/plugins.sbt

// SBT community plugin resolver
resolvers += Resolver.url("sbt-plugin-releases",
  new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)

// CoffeeScript compiler plugin
addSbtPlugin("me.lessis" % "coffeescripted-sbt" % "0.2.3")

project/Modules.scala私のビルドオブジェクト)で:

import sbt._

object Modules extends Build {

  lazy val root = RootModule.project

  lazy val api = ApiModule.project

  lazy val web = WebModule.project
}

project/WebModule.scala

object WebModule extends BaseModule {

  // ... libraries dependencies and stuff

  override def project = play.Project(moduleName, moduleVersion, libraries, file(location),
    moduleSettings ++
    Seq((resourceManaged in (Compile, CoffeeKeys.coffee)) <<= (crossTarget in Compile)(_ / "src" / "main" / "coffee"))
  )
}

各モジュールの共通要素の乱雑さを取り除くために a を使用しproject/BaseModule.scalaますが、派手なことは何もしていません。

Build.scala を使用

ものを削除し、次を追加してviabuild.sbtに入れます。Build.scalaproject/WebModule.scala

  override def project = play.Project(moduleName, moduleVersion, libraries, file(location),
    moduleSettings ++
    coffeeSettings ++  // With the settings moved from build.sbt
    Seq((resourceManaged in (Compile, CoffeeKeys.coffee)) <<= (crossTarget in Compile)(_ / "src" / "main" / "coffee"))
  )

それから私はそれを回転させます

$ sbt
[info] Loading project definition from /Users/jeffmay/code/righttrack/project
[info] Set current project to root (in build file:/Users/jeffmay/code/righttrack/)
> coffee
[error] Not a valid command: coffee
[error] No such setting/task
[error] coffee
[error]       ^
> project web
[info] Set current project to web (in build file:/Users/jeffmay/code/righttrack/)
[web] $ coffee
[success] Total time: 0 s, completed Jun 25, 2013 12:08:36 AM
[web] $ show coffee
[info] ArrayBuffer()
[success] Total time: 0 s, completed Jun 25, 2013 12:08:40 AM

coffee コマンドを実行しても変化が見られません。問題は何ですか?

ありがとう!

4

1 に答える 1