4

sbt0.11.2とxsbt-web-plugin0.2.10を使用して、Wicket(1.5.3)アプリを構築しています。私はこのバージョンのJettyを使用しています:

"org.eclipse.jetty"% "jetty-webapp"% "8.0.1.v20110908"% "container"、

だから私がするとき

> container:start

私のアプリは問題なく起動します。

しかし、HTMLの一部を変更すると、変更するまで変更は開始されません。

>コピーリソース

そしてscalaソースコードの変更は私がするまで反映されません

>aux-compile
(これは見つけにくかったです!!)

問題は、これをすぐに反映させたいということです。できます

> 〜copy-resources

また

> 〜aux-compile    

別々に保存して、どちらか一方が自動的に保存されるようにします。

問題は、最初にEnterキーを押してコマンドプロンプトを表示しないと、2番目のチルダプレフィックスコマンドを入力できず、実行中のチルダコマンドがキャンセルされるため、両方を実行する明確な方法が見当たらないことです。

ありがとう。


更新:
私がやろうとしていることの最小限の例をここに投稿しました:
https ://github.com/jpswain/DummySbtScalaWicket.git

sbt(0.11.2)を実行してから、これを起動します。

> container:start

したがって、「〜aux-compile」を実行してログステートメントを変更するか、ラベルによって読み取られる名前を変更すると、その場で更新されることに気付くでしょう。「〜copy-resources」を実行して「Hello」->「Hola」を変更すると、その場で変更されたことがわかります。両方が保存時に行われるように作成しようとしています。「〜container:reload /」は何もしないようです!

@Vasil Remeniukからの回答は正しいアプローチのようですが、コードをどこに配置して機能させるかが正確にわからない場合を除きます。(構文エラーが発生します。)誰かがそのコードが機能するかどうかを確認してくれるといいのですが、プロジェクトで何か問題が発生して機能しなくなった場合はどうでしょうか。

ありがとう!!
ジェイミー


最終更新:
@Vasil Remeniukからのアドバイスのおかげで、私はこれをすべて機能させることができました。リロード可能なJettyコンテナをすばやく起動するために必要な場合は、https://github.com/jpswain/DummySbtScalaWicket.git
からダウンロードし て、ディレクトリから次のコマンドを実行します。

$ sbt

sbtが表示されたら、次のようにします。

> container:start
>〜auxx
4

2 に答える 2

14

~コマンドリストを含む、任意のコマンドを引数として受け入れます。

~ ;copy-resources;aux-compile

これが実行されcopy-resourcesaux-compile各トリガーで実行されます。

ただし、この場合、タスクグラフの評価が1回だけで済むため、Vasilのソリューションを好みます。

于 2011-12-16T01:35:03.567 に答える
6

を呼び出し/依存する独自のタスクを作成できaux-compileますcopy-resources

import sbt._
import Keys._
import com.github.siasia._
import PluginKeys._

object SampleProject extends Build {

  val sampleTask = TaskKey[Unit]("combined")

  val setngs = Seq(
    sampleTask <<= (copyResources in Compile, auxCompile in Compile) map {
      (c, p) =>
    }
  )

  val root = Project("root", file(".")) settings(setngs:_*)

  override val projects = Seq(root)

}

、新しいタスクを継続的に呼び出します

~combined
于 2011-12-12T09:17:58.857 に答える