An open API service indexing awesome lists of open source software.

https://github.com/sshtools/updatesxmlmerger-maven-plugin

Merge Install4J updates.xml files from several builds into a single file
https://github.com/sshtools/updatesxmlmerger-maven-plugin

Last synced: over 1 year ago
JSON representation

Merge Install4J updates.xml files from several builds into a single file

Awesome Lists containing this project

README

          

# Install4J updates.xml Merger

A simple Maven plugin to take several `update.xml` files produced by [Install4J](https://www.ej-technologies.com/products/install4j/overview.html) for a
particular project and merge them into a single file.

This plugin came about due to the need to build multiple different installers on different machines for
different platforms.

Todays modern software deployments requirements are become a lot more onerous for a Java developer,
and in particular in CI environments.

Many code signing authorities are requiring the keys for Windows signing are stored on hardware devices,
introducing difficulties signing on platforms other than Windows. Apple have similar requirements for
their application notarisation.

We make use of Install4J's update mechanism, which relies on `updates.xml` files that contains meta-data
required for this to work. However, compiling an Install4J project produces an XML file only for the platforms
that are being built.

So we must (in our `Jenkinsfile`) build on each of our supported platform, then merge the XML produced for
each platform the create the final `updates.xml` that is deployed to the public file repository.

## Obtaining

Available on Maven Central. Adjust for your build system.

```xml

com.sshtools
updatesxmlmerger-maven-plugin
1.0.0

```

## Usage

There is no other documentation for this plugin, but the following should give you a good idea how to use
it.

```xml

com.sshtools
updatesxmlmerger-maven-plugin
1.0.0


${project.build.directory}/media-macos/updates.xml
${project.build.directory}/media-windows/updates.xml
${project.build.directory}/media-linux/updates.xml

${project.build.directory}/media/updates.xml

```