Как создать инсталляторов с Maven

Я переношу версию 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?

Ответ 1

Я бы использовал IzPack maven plugin, если вам нужен полнофункциональный установщик, или appassembler-maven-plugin, если вам просто нужно создать демоны для java-сервисов.

Есть также плагины для 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>

Ответ 3

Я не уверен, правильно ли я прав. Вы когда-нибудь пробовали сборку maven?

http://maven.apache.org/plugins/maven-assembly-plugin/

Это была моя первая идея для вашего вопроса.

Ответ 4

Там есть плагины, которые будут делать то, что вам нужно.

. deb

. rpm

nullsoft

Ответ 5

Я ищу Installjammer - я не вижу для него плагин maven, но по сравнению с izPack он выглядит намного более профессиональным.

Ответ 6

BitRock InstallBuilder можно использовать с Maven (и другими инструментами сборки CI) для создания инсталляторов Windows exe, двоичных файлов Linux/RPM/DEB и ОС X. Он коммерческий, но у нас есть скидки для небольших компаний/сольных разработчиков и бесплатные лицензии на проекты с открытым исходным кодом (отказ от ответственности, я являюсь автором InstallBuilder)