maven - 实现基于 maven 的安装程序

标签 maven

maven user list 中也有人问过类似的问题但我有类似的情况。

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

我需要做的是:

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

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

    最佳答案

    我不知道有什么通用的解决方案可以做到这一点,尤其是可以打包定制 WAR 的解决方案。 IzPack 可以收集安装参数(可能有助于解决第 3 步),IzPack 称为 Web Installers 的高级功能这可能有助于解决第 4 步,但据我所知,它不是构建/打包工具,因此不会涵盖第 5 步(最重要的)。

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

    实际上,就您而言,我认为 Ant(带有 Maven Ant Tasks 或 Ivy)将是最佳选择。我知道这不是您要求的,但我认为 Maven 不是适合您用例的工具。

    关于maven - 实现基于 maven 的安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209129/

    相关文章:

    android - 是否可以设置一个IntelliJ Android项目以与Maven一起使用?

    mysql - SpringBoot + Maven 连接并创建数据库架构

    java - Nexus 模拟器屏幕不显示 maven android :deploy result

    java - 获取错误 : . ...嵌套异常是 java.lang.NoSuchMethodError : org. apache.catalina.Context.addServletMapping(Ljava/lang/Stri

    maven - 将pcap二进制文件读入HDFS

    java - 如何在 Manifest 文件中包含 Maven 依赖项

    使用 maven 设置 Android 支持库

    java - Eclipse-project 到 ant/maven/gradle/的 makefile

    web-applications - Maven webapp - 从 web 应用程序派生的 jar 中排除 java 资源

    linux - 如何将 Maven 安装到 Red Hat Enterprise Linux 6 中?