类似的问题已被问到 Maven用户列表 但我也有这样的情况,类似。

我有一些服务,打包为.WAR,由maven 构建。但是,此 .WAR 文件需要自定义:我需要根据用户输入以不同的方式打包它。基本上,用户应该自己选择组件,他想添加到WAR中,并为这些组件定义一些简单的配置。

我需要做的是:

  1. 创建一个“轻量级”安装程序,该安装程序将不包含任何Maven工件(或者,如果不可能,则所有这些工件都包含=“重量级”安装器)。
  2. 当最终用户启动安装程序时,系统会要求他提供要打包的组件列表(=复选框)
  3. 对于每个组件,安装程序都会要求提供配置选项(然后保存为 .property 文件,每个组件一个)
  4. 然后,安装程序仅获取所需的工件(由用户选择的工件 + 那些必需的工件),并用步骤 3 中的工件替换这些工件中的属性文件(或将它们放入“classes/”)。
  5. 最后,它创建随时可用的 WAR 包并(可选)在后台启动 tomcat(或 jetty)。

IzPack 仅有助于解决步骤 2。但有没有通用的解决方案呢?

有帮助吗?

解决方案

我不知道有什么通用的解决方案可以做到这一点,特别是 包裹 定制的战争。伊兹包 收集安装参数(也许有助于解决步骤 3),IzPack 一项高级功能称为 网络安装程序 这可能有助于解决步骤 4,但据我所知,它不是构建/打包工具,因此它不会涵盖步骤 5(最重要的)。

也许 Maven 原型可以在这里提供帮助(在交互模式下)。但我什至不确定原型能否提供您所需的灵活性。换句话说,事情不会简单。

实际上,就你而言,我认为 Ant (与 Maven Ant 任务 或常春藤)将是最好的选择。我知道这不是您所要求的,但我认为 Maven 不是适合您的用例的工具。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top