0

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

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

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

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

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

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

我不认为这与 StackOverflow 问题的重复如何将一些模块“打包”到 jars 中,而将其他模块“打包”到单个任务的多模块构建中的战争?因为我没有使用汇编。

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

4

1 回答 1

2

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

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

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

项目/plugins.sbt:

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

[网络项目]/build.sbt:

enablePlugins(WarPlugin)

您可以在https://earldouglas.com/ext/stackoverflow.com/questions/31683637/找到完整的示例

于 2015-07-29T15:18:16.337 回答