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 文件发布:
- 在project/plugins.sbt
中添加xsbt-web-plugin
- 在[webproject]/build.sbt
中启用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/
找到完整的示例
我正在使用 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 文件发布:
- 在project/plugins.sbt 中添加xsbt-web-plugin
- 在[webproject]/build.sbt 中启用
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/
找到完整的示例