I have a large Java application that somes in several OSGI bundles. It also includes plugins.

I want to create multiple distributions of the application with different selections each time. In some cases the distributions also include installers, PDF manual, Javadoc files and other non related code.

Is there a tool that will get as source

  1. Jars from a Maven repo
  2. Property files to be replaced on the jars
  3. Other files (pdf files)
  4. Installers (native executables)

and create one big zip package of these?

As an example you can think that my example application is photoshop and I want to create distributions of "photoshop free", "photoshop lite" and "photoshop ultimate" each time with a bit different jar files.

So far I have looked at

  1. Maven, Gradle These compile code. I already have the code as binaries.
  2. Cfengine, Chef,puppet. These are geared toward server preparations. My application is standalone and the final result should be a zip file and not a server
  3. Lzpack and friends. I have already an installer. It should be packaged in the same ZIP file as everything else.

Any other ideas? My application is about 100 OSGI files and I need different combinations of those for each release.

Happy to provide any more details.


At the moment I am using Maven (and the assembly plugin) but the code is too complicated and full of hacks.

For example there is an OSGI jar that contains a property file (EJB descriptor) that changes according to the installation type. This means that Maven needs to open the jar archive and tamper with the property file at the end of the build. I accomplished this after a lot of hacks as I didn't find a Maven plugin that opens an existing jar file, makes changes and then re-compress it.

The installation file is also created according the operating system where the application will be installed.

In summary I think that Maven is too restrictive for things that are not Java source code. If there is a Maven plugin that I am missing, please say so.

  • Would a plugin for maven be fine? – Angelo Fuchs Jul 15 '15 at 11:20
  • You mean the maven assembly plugin? – kazanaki Jul 15 '15 at 14:01
  • I do, but the question is more fundamentally. You seem to exclude such stuff in your question, but I thought that may be a solution. – Angelo Fuchs Jul 15 '15 at 16:34
  • Keep in mind that maven does not "compile code". It happens to do that as well, but as a full build framework it can package your stuff in multiple ways. – Angelo Fuchs Jul 15 '15 at 16:34
  • 1
    I added some more explanations on what I have. I don't exclude anything. I am open to any suggestions. I feel I have pressed the assembly plugin to its limits though. – kazanaki Jul 15 '15 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.