Migrate `JvmBinaryTask` to 'compile_classpath'.

Review Request #2832 - Created Sept. 16, 2015 and submitted

Information
John Sirois
pants
jsirois/ivy_quest/jar_dependencies/half_dead
1841, 2206
2840, 2837
91c9118...
Reviewers
pants-reviews
kwlzn, mateor, nhoward_tw, patricklaw, stuhood, zundel
The 'jar_dependencies' is slated for imminent removal and the
`ArtifactClasspathEntry`s exposed via the 'compile_classpath' product
provides richer data that is used to ensure unique jar paths in
`BundleCreate`.  In addition, `JvmBinaryTask`s handling of
`JvmBinary.deploy_excludes` now leverage the same exclude logic used in
forming classpaths via the help of a new `ClasspathProducts.copy` method
that makes it safe for `JvmBinaryTask` to snapshot the classpath and add
in additional deply-only excludes for forming deploy binaries and
bundles.

The use-case of grabbing external artifact only classpaths from
`ClasspathProducts` is formalized in a new API and tests are added for
all the new products behaviors.

 src/python/pants/backend/jvm/tasks/BUILD                             |  2 ++
 src/python/pants/backend/jvm/tasks/bundle_create.py                  | 14 +++++++--
 src/python/pants/backend/jvm/tasks/classpath_products.py             | 57 +++++++++++++++++++++++++++++++----
 src/python/pants/backend/jvm/tasks/detect_duplicates.py              |  5 ++--
 src/python/pants/backend/jvm/tasks/jvm_binary_task.py                | 81 +++++++++++---------------------------------------
 src/python/pants/backend/project_info/tasks/export.py                | 24 +++++++--------
 src/python/pants/backend/project_info/tasks/ide_gen.py               | 13 ++++----
 src/python/pants/goal/products.py                                    | 18 +++++++++--
 tests/python/pants_test/backend/jvm/tasks/BUILD                      | 10 +++----
 tests/python/pants_test/backend/jvm/tasks/test_binary_create.py      | 20 ++++---------
 tests/python/pants_test/backend/jvm/tasks/test_bundle_create.py      | 32 +++++++-------------
 tests/python/pants_test/backend/jvm/tasks/test_classpath_products.py | 47 +++++++++++++++++++++++++++++
 tests/python/pants_test/goal/test_union_products.py                  | 23 ++++++++++++++
 13 files changed, 209 insertions(+), 137 deletions(-)
CI went green here:
  https://travis-ci.org/pantsbuild/pants/builds/80741427
John Sirois
Eric Ayers
John Sirois
John Sirois
Stu Hood
Stu Hood
John Sirois
John Sirois
John Sirois
John Sirois
John Sirois
John Sirois
John Sirois
John Sirois
John Sirois
Review request changed

Status: Closed (submitted)

Eric Ayers
Ship It!
Nick Howard (Twitter)
Ship It!
Loading...