当前位置: 首页 > 面试题库 >

如何使用Maven创建安装程序

冀永寿
2023-03-14
问题内容

我正在将中型Java应用程序的构建从Ant迁移到Maven。我可以轻松迁移基本的构建内容,但是我也想从Maven构建中创建安装程序包。最简单的方法是通过Ant插件调用原始的Ant脚本,但我想也许我应该先看看Maven的支持。

我需要为不同的平台创建几个不同的安装程序:

  • Windows 32/64位
  • Linux 32/64位
  • MacOS 32/64位

现在对于Linux,我认为我们只有一个tar.gz和一些Bash脚本来启动守护程序-Debian /
RPM软件包会更好,也许还有相关的软件包定义。对于Windows安装程序,我们使用NullSoft安装程序。我不知道现在如何组装MacOS捆绑包。

是否有Maven提供的工具(或至少部分工具)来执行此操作?


问题答案:

如果您需要功能完善的安装程序,请使用IzPack
maven插件;
如果仅需要为Java服务生成守护程序,则可以使用appassembler-
maven-plugin

也有NSIS,Debian和RPM打包的插件,但是使用这些插件,您必须维护每个平台的配置,另一方面,IzPack允许您生成Windows XP / Vista /
2003/2000,Mac OS X的安装程序,Solaris,Linux和* BSD。

appassembler插件提供了为每个平台生成JSW守护程序的目标。这是一个示例配置:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>appassembler-maven-plugin</artifactId>
  <version>1.0</version>
  <execution>
    <id>generate-jsw-scripts</id>
    <phase>package</phase>
    <goals>
      <goal>generate-daemons</goal>
    </goals>
    <configuration>
      <daemons>
        <daemon>
          <id>myApp</id>
          <mainClass>name.seller.rich.MainClass</mainClass>
          <commandLineArguments>
            <commandLineArgument>start</commandLineArgument>
          </commandLineArguments>
          <platforms>
            <platform>jsw</platform>
          </platforms>              
        </daemon>
      </daemons>
      <target>${project.build.directory}/appassembler</target>
    </configuration>
  </execution>
</plugin>


 类似资料:
  • 我设法创建了一个. exe安装程序的窗口使用电子建设者,我创建2package.json指出的文档: https://github.com/electron-userland/electron-builder. mymainpackage.json的build部分是 一切工作正常,我有和.exe安装程序,但没有办法有一个.msi安装程序,把内容在程序文件目录。 相反,我最终在C:\用户\用户之家\

  • Java运行时环境(OpenJDK 1.7 JRE) 脚本(.bat) 一个胖罐子 图标文件 一些文本文件 我不想使用系统的JRE,这就是我提供另一个JRE的原因。该脚本只使用几个参数调用JRE。图标文件为.ico格式。fat JAR是包含所有必需的Java类、本机库和资产(包括第三方库)的JAR。 我想允许最终用户安装、运行和卸载我的程序。我想在“开始”菜单中提供一个快捷方式来运行它,另一个快捷

  • 我使用jpack打包了我的java应用程序。当我使用打包的安装程序安装它时,安装后的目录始终是

  • 以前我使用Izpack安装我的Java应用程序,当用户想要安装新版本时,他们只需重新安装到相同的位置(c“/Program files/jthink/jaikoz”),这将用较新的文件替换较旧的文件,用户不需要先卸载旧版本。 我现在已经为应用程序的最新版本构建了一个使用JPackage(现在是Java,JDK14的一部分)的安装程序,这将继续安装到相同的位置。问题是因为JPackage强制了一个新

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我正在开发一个javafx应用程序。此应用程序与设备通信,因此设备JAR不是模块化的,它们附带一些添加到开发中的dll文件。现在,它在Netbeans 12.6上运行得很好,但在我使用jdk-17 jpackage创建安装程序时就不是了。我相信我遗漏了一些东西,但由于我对这个jpackage还很陌生,所以我不知道如何解决它。以下是

  • 我想使用maven创建一个多层java项目,如下所示: presentationlayer-guiModule(JSP/JSF页面的最顶层) PresentationLayer-GatewayModule(web服务的最顶层) BusinessLayer-ServiceModule(中间层) DataAccessLayer(最下层) 通用层(可从所有层访问的垂直层) 根pom 耳POM Guimo