Boxer
Boxer is a packaging tool for Eclipse Java Projects,
able to function as a Builder, usable from scripts, and the command
line, although project configuration is best done through the
GUI. It’s sexy, it’s cool, it’s fast, and it’s totally Free!
As of April 2014, Boxer has been rewritten from scratch: It is not
just better engineered now (the source code is no longer embarrassing,
but also easier to maintain and improve in the future), but Boxer is
also easier to use and more intuitive (really!), and—believe it
or not—it’s faster than Boxer 1, too.
The following summarizes what Boxer can do for you:
- Packages all your binaries into a JAR file
- Libraries (.jar and .zip files) can be referenced either in the
traditional way (via classpath in the manifest), or merged into
the main JAR to eliminate external dependencies
- Trim unused classes from merged libraries to reduce total size
of delivered code
- Classpath folder contents are merged into the main jar
- Dependent projects can be either referenced like a library (via
classpath in the manifest), or contents merged into the main JAR
- Pick a Main-Class (entry point) from the set of classes that
implement
public static void main(String[])
- Sign the JAR with a digital signature
- Create an additional archive file to wrap the main JAR and its
dependent JARs, along with documentation and other additions, for
distribution
- Create any set of message digest files (MD5, SHA1, SHA-256, etc.)
to help recipients verify the integrity of the published file(s)
- Optionally include source code in the JAR for your Free/Libre/Open
Source Software (FLOSS) projects
- Add arbitrary external files (licenses, documentation, README,
etc.)
- Define a splash screen image for the JAR
- Add arbitrary fields to the JAR manifest
- Define and write a JNLP (Java Network Launch Protocol) file for
your projects
- Extract arbitrary text from a source file to be composed into a
${VERSION} that can be used, along with ${USER}, ${OS}, and
an automatically maintained ${BUILD} counter in filenames
- Assign icons to your projects to make them more visible in
Boxer’s listing.
Description: | A Packaging Tool for Eclipse Java Projects, able to function as a Builder, usable from scripts, and the command line, although project configuration is best done through the GUI. Itâs sexy, itâs cool, itâs fast, and itâs totally Free! |
Version: | 2.0 |
License: | GNU General Public License (GPL) v3 (Free as in Speech) |
Requirements: | Java 1.7+ |
Launch (shell): | java -jar boxer2.jar |
Download: | boxer2.jar (615.8KiB) |
NOTE: Boxer creates a .boxer2-conf file (distinct from
.boxer-conf from Boxer 1.x) in each Eclipse project
directory for which you save Boxer settings. These settings are used
whenever you change the Boxer configuration for the project, or use
Boxer to package it.
Changes
In reverse-chronological order:
Version 2.0 (2014-04-13)
- Define binaries to be excluded from merged libraries [FEATURE]
- Define sources to be excluded from (optionally) included sources [FEATURE]
- Add arbitrary external files by arbitrary names [FEATURE]
- Detects name conflicts and duplicate files from multiple projects [FEATURE]
- Supports ${BUILD} reference counter in filenames and manifest [FEATURE]
- Show projects in either one or all registered workspaces [FEATURE]
- Define and write JNLP files for your projects [FEATURE]
- Removed the ability not to include libraries and other files that a project describes as required components [MISFEATURE]
- Boxer has a punchy icon now
- Numerous usability improvements all across the board
Version 1.3 (2014-02-22) — Still available: boxer.jar (420.8KiB)
- Command line password (jarsigner) entry no longer hangs if wrong password entered [BUG]
- No longer complains and stops when duplicate files are added to JAR [BUG]
- Command line searches all workspaces for a matching project [FEATURE]
- Output JAR file also supports ${VERSION} in filename [FEATURE]
- Can override output JAR name (used to be fixed to project name) [FEATURE]
Version 1.2.1 (2013-12-06)
- Add support for a Time Stamp Authority (-tsa parameter on JarSigner) [FEATURE]
- Preliminary Boxer.odt (documentation) included in JAR
Version 1.2 (2013-10-14)
- Allows dynamic ${VERSION} tag in distribution archive filename [FEATURE]
- Remembers multiple workspaces in drop down [FEATURE]
- Duplicate zip entry no longer aborts archive creation [BUG]
- Sources in the jar [FEATURE]
NOTE: I had hoped to rework the source code, clean up the ugly (bad)
design, and make it all more maintainable, but I don’t have the time
to work on it right now. I suppose it’s better than nothing, but I’m
not too proud of it.
Version 1.1.1 (2013-09-23)
- Fixed saving and re-loading .boxer-conf file on MS-Windows [BUG]
- Fixed dynamic class instantiation on MS-Windows [BUG]
Version 1.1 (2013-09-22)
- Library JAR files can be merged, as intended, into the main JAR [BUG]
- Class folders are correctly packaged (not just explicitly named files) [BUG]
- The passwords in the signing properties file can be encrypted [FEATURE]
- Added a short and long description to projects [FEATURE]
- Different library types are explicitly indicated in the GUI
- Various cosmetic improvements
Version 1.0.3 (2013-09-19)
- Corrected packaging of library JAR files that are external to the project [BUG]