xsbt-web 多模块项目:将一些模块打包到 jars,其他模块到 wars

xsbt-web multi-module project: package some modules to jars, others to wars

我正在使用 sbt 0.13.8 和 xsbt-web-plugin 2.0.3

我有一个多模块 sbt 项目。打包时,其中一个模块应该是 war 文件的形式。 jar 文件中的所有其他内容。

当我添加 xsbt-web 插件时,打包会为所有模块生成 jars and wars。我如何告诉 xsbt-web 插件仅将其自身应用于应打包为 war?

的模块

我已经找到了一种解决方案,即为每个非 war 模块修改 packagedArtifacts 列表:

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

但是,这是一个非本地更改,我必须将其应用于我(或团队成员)可能创建的每个新的非 war 模块。

我不认为这是 Whosebug 问题的重复How to “package” some modules to jars and others to wars in multi-module build with single task?,因为我没有使用程序集。

请注意,当前正在生成的 jar 模块的 jar 和 war 模块的 wars 运行良好。我只是想避免有人试图部署本应是 jar 的 war 的情况。

这是版本 2.0.3 中的错误 -- 感谢您发现它!我已经在 2.0.4 中修复了它。

要为多模块项目中的单个模块启用 .war 文件发布:

  1. project/plugins.sbt
  2. 中添加xsbt-web-plugin
  3. [webproject]/build.sbt
  4. 中启用WarPlugin插件

project/plugins.sbt:

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

[webproject]/build.sbt:

enablePlugins(WarPlugin)

您可以在 https://earldouglas.com/ext/whosebug.com/questions/31683637/

找到完整的示例