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

时间:2015-07-28 17:49:31

标签: sbt xsbt-web-plugin

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

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

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

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

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

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

我不认为这是StackOverflow问题How to “package” some modules to jars and others to wars in multi-module build with single task?的副本,因为我没有使用汇编。

请注意,jar模块的jar和战争模块的战争(目前正在生成)非常出色。我只是试图避免某人试图部署一场本来就是战争的战争的情况。

1 个答案:

答案 0 :(得分:2)

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

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

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

    项目/ plugins.sbt:

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

    [webproject] /build.sbt:

    enablePlugins(WarPlugin)
    

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

    找到完整的示例