1

sbt (バージョン 0.9.0) を構成して、sbt でパッケージ タスクを実行するときに webapp/dist を webappResource ディレクトリとして使用し、container:start コマンドを実行するときに webapp/app ディレクトリを webappResource ディレクトリとして使用するように、次の説明に従います。

SBT で container:start タスクと package タスクに異なる webapp リソースを設定する方法

しかし、次のエラーがスローされます。

    エラー: eof が必要ですが、'package' が見つかりました。
    パッケージ内の webappResources := Seq(baseDirectory.value / "webapp" / "dist")
                       ^
    [エラー] 式の解析中にエラーが発生しました。

パッケージはsbt confファイルでも予約語だと思いますが、パッケージタスクの設定をオーバーライドする他の方法はありますか?

これを行う理由は、gulp を使用して webclient を管理するためです。Gulp は app フォルダーからプロジェクトを実行し、webclient プロジェクトを dist フォルダーにコンパイル (縮小など) します。開発するときは、以下で宣言されているように webapp/app フォルダーを使用します。

    コンパイル中の webappResources := Seq(baseDirectory.value / "webapp" / "app")

リリースを作成するときは、最初に gulp を使用して webapp クライアントを webapp/dist にビルド (縮小など) します。次に、webapp/dist コンテンツを最終的な戦争にパッケージ化したいと考えています。

しかし、パッケージ タスクを使用する場合、上記の設定をオーバーライドして webapp/dist を使用することはできません。

また、次のような独自の構成を作成しようとしました。

    コンパイル中の webappResources := Seq(baseDirectory.value / "src" / "main" / "webapp" / "app")

    lazy val ReleaseWarConfig = config("release-war") 拡張 (コンパイル)

    val root = (ファイル内のプロジェクト("."))。
      configs(ReleaseWarConfig)。
      settings(inConfig(ReleaseWarConfig)(webSettings): _*)。
      設定(
        コンパイル中の webappResources := Seq(baseDirectory.value/"src"/"main"/"webapp"/"dist")
    )
    // Compile の代わりに ReleaseConfig で webappResources も試しました。

ただし、webapp/dist ディレクトリの代わりに webapp/app ディレクトリを引き続き使用します。

どんな助けでも大歓迎です!!!!

4

1 に答える 1

0

プロジェクトのディレクトリ レイアウトは何ですか? [myproject]/webapp/dist/にWeb アプリケーション リソース ディレクトリがあるようです。つまり、 [myproject]/webapp/dist の下にWEB-INF/WEB-INF/web.xml (およびその他のさまざまなオプションのリソース) があります。 /も。これは正しいです?

Web アプリケーション リソース ディレクトリの場所を[myproject]/webapp/dist/に設定するには、次の設定を sbt 構成に追加します。

build.sbt :

webappSrc in webapp <<= (baseDirectory in Compile) map  { _ / "webapp" / "dist" }

この設定の詳細については、readme を参照してください。

于 2014-12-10T04:00:00.200 に答える