Manifest files are a small text information file stored in the jar. It is a useful place for storing information about the jar. In this article, I will go on to talk about the sort of information you can put in your manifest files and then explain what we have in ours and why.
Manifest files can store any sort of textual information, this will usually be information related to the jar file. For example, you could store the day the software was built, the version number and who wrote the software, this would then be stored inside the jar for when it is distributed.
Our manifest files previously had very little if any consistency among them. You would look at BuildVu and see why format and then go to JDeli and see something completely different. We noticed this and thought it would be good to modify our manifest entries to make them more consistent.
What our manifest files used to be
Our manifest files used to be quite erratic. This meant that our manifest files became hard to read when switching between them, this can also waste time when trying to get information from them, due to the files being in different orders.
So at a glance, these files do look quite similar but when you look closer you will notice that the ordering is different, in other cases the build numbers were different, and only one of our software stated whether or not it supported multi-jar.
What our manifest files are now
Now we have made these changes, all of our manifest files have a consistent order and fields. We have also changed our Build number to be consistent among all of our manifest files. Our manifests tell whether or not they are multi-jar. The new manifest files are as follows:
As you can see the two files are much more alike than before.
Why did we change the files
These files all lacked one thing among them-consistency. Having all of our files become consistent both in house and externally had been on our roadmap and we now had the chance to address it and simplify it.
To be able to read a file easily and have all of our files in the same order allows us to be able to find what needs changing quickly, for example, recently we have been adding multi-jar to our software, organizing our pom files helped in this. Before our pom files were unordered and unstructured, this meant adding to them or modifying plug-ins was more tedious than it needed. Ordering our pom files makes changes we can now find everything much easier and make updates faster.
This also applies to our Manifest files for both us and our customers to be able to look at our manifest files and quickly find the information needed is not only nice it is also something that can increase productivity.
To conclude, manifest files can be very useful to both developers and users. They allow people to see the information that may not be apparent straight away. We use these files to allow us to inform our users about the software to let them know what version they are using an when it was built. The consistency of a manifest file can also be good as it allows people to go between files with ease not having to track down the data each time.