0

私はsbt 0.13.8とxsbt-web-plugin 2.0.3を使用しています

マルチモジュールの sbt プロジェクトがあります。パッケージ化する場合、モジュールの 1 つを war ファイルの形式にする必要があります。jar ファイル内の他のすべて。

xsbt-web プラグインを追加すると、パッケージ化によってすべてのモジュールのjarとwar が生成されます。xsbt-web プラグインに、war としてパッケージ化する必要があるモジュールにのみ適用するように指示するにはどうすればよいですか?

戦争以外のモジュールごとに packagedArtifacts リストを変更するという 1 つの解決策を既に見つけました。

packagedArtifacts <<= packagedArtifacts map { as => as.filter(_._1.`type` != "war") }

ただし、これはローカルではない変更であり、私 (またはチーム メンバー) が作成する可能性のある新しい非戦争モジュールごとに適用する必要があります。

これは StackOverflow の問題の重複とは考えていません単一のタスクで複数のモジュールをビルドする際に、一部のモジュールを jar に「パッケージ化」し、他のモジュールを war に「パッケージ化」する方法は? 私はアセンブリを使用していないので。

現在生成中の jar モジュールの jar と war モジュールの wars が見事に動作することに注意してください。私は、誰かが壷になることを意図した戦争を展開しようとする状況を避けようとしているだけです.

4

1 に答える 1

2

これはバージョン 2.0.3 のバグでした -- 発見してくれてありがとう! 2.0.4で修正しました。

マルチモジュール プロジェクトで単一モジュールの .war ファイルの公開を有効にするには:

  1. project/plugins.sbtに xsbt-web-plugin を追加
  2. [webproject]/build.sbtWarPluginでプラグインを有効にします

プロジェクト/plugins.sbt:

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.0.4")

[webproject]/build.sbt:

enablePlugins(WarPlugin)

この完全な例は、https://earldouglas.com/ext/stackoverflow.com/questions/31683637/にあります。

于 2015-07-29T15:18:16.337 に答える