我使用的是sbt 0.13.8和xsbt-web-plugin 2.0.3
我有一个多模块sbt项目。在打包时,其中一个模块应该是war文件的形式。所有其他的在jar文件中。
当我添加xsbt-web插件时,打包为所有模块生成jar 和 wars。我怎么能告诉xsbt-web插件只适用于应该打包为战争的模块?
我已经找到了一个解决方案,那就是为每个非战争模块改变packagedArtifacts列表:
packagedArtifacts <<= packagedArtifacts map { as => as.filter(_._1.`type` != "war") }
然而,这是一个非局部更改,我必须将其应用于我(或团队成员)可能创建的每个新的非战争模块。
我不认为这是StackOverflow问题的副本如何将一些模块"打包"到jar和其他模块中,在多模块构建中使用单个任务?因为我没有使用汇编。
请注意,当前正在生成的jar模块的jar和war模块的war工作得非常好。我只是想避免这种情况,有人试图部署一场战争,本来是一个罐子。
这是2.0.3版本的一个bug——谢谢你发现它!我已经在2.0.4中修复了。
为多模块项目中的单个模块启用.war文件发布:
- 添加xsbt-web-plugin到project/plugins.sbt
- 启用[webproject]/build.sbt 中的
WarPlugin
插件addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.0.4")
[webproject]/build.sbt:
enablePlugins(WarPlugin)
您可以在https://earldouglas.com/ext/stackoverflow.com/questions/31683637/