pantsbuild/pants — pull request #144 by jsirois (2014-05-22 02:13:27+00:00)
Title: Switch pants to use the java jar-tool utility to create jars.

It turns out the java jar utility and the backing java APIs hack the zip
format to support > 2^16 jar entries in zip32 jars (pre java 7). The
easiest way to access this functionality is to delegate to the JDK jar
APIs.

This change maintains the in-use open_jar context manager but extends
its use to all pants jar creators and updaters as well as expanding its
functionality to cover explicit support for main and classpath manfiest
entries and merging jars.

Since the new jarring uses java APIs, duplicates are explicity
forbidden and so JarRules are exposed to control handling of dups via
a new JvmBinary.deploy_jar_rules attribute and the ability to set a
global site-wide set of default jar rules.

A little test infra housekeeping - aso add a BuildSupportTaskTest for
task tests that need the loose files in build-support to function (most
non-console Tasks).

https://rbcommons.com/s/twitter/r/395/