-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6012/
-----------------------------------------------------------

Review request for hcatalog.


Description
-------

Update HCatalog build to use transitive dependencies instead of explicitly 
listing them. The primary goal of this change is publishing meaningful POM 
files so we can get HCatalog into the central maven repo.

ant/dependencies.xml

This is a new file that has much of the Ivy stuff in it. Notice we now do one 
resolution per subproject, fetching into per-configuration directories. This 
greatly simplifies things, and ensure we only need to resolve once per 
subproject.

ant/deploy.xml

This has much of the maven-ant-tasks stuff, which is not fully used. I left 
this in here because we'll need to sign packages when publishing them. The only 
thing truly needed is mvn-init - the other stuff is kept for convenience in a 
subsequent change.

build-common-new.xml

Main change here is using the shared ivy config stuff.

build-common.xml

Mainly set some properties and remove some cruft. I don't really like how 
properties are duplicated among several xml files, and would like to 
consolidate these into one file or perhaps a build.properties file. I decided 
against that at this time because the patch is already getting pretty large and 
want to stay focused on getting the artifacts into maven.

build.xml

Lots of ivy stuff is removed, using dependencies.xml instead. We also publish 
hcatalog-core.jar into the local maven repo at build time, so we can depend on 
it from other subprojects. You'll notice later how simple the subproject ivy 
files become because of this.

hcatalog-pig-adapter/build.xml

Mainly update classpaths.

hcatalog-pig-adapter/ivy.xml

Our dependencies are greatly simplified because now we get most things from 
hcatalog-core.jar, instead of listing them explicitly.

ivy.xml

Lots of simplification here :) Now we primarily get dependencies transitively, 
with lots of stuff coming from Hadoop/Hive. A consequence of this is some jar 
versions have changed. For example, we get guava from Hive now, which is r09 
instead of 11 like we had specified. I think this is better actually, because 
if we're integrating with these other tools we want the same library versions 
for the most part. If we do want to explicitly list a dependency (bump guava 
for example) we could do that but I haven't at this time.

Also not that I've simplified the configurations to two - default and test. 
Some jars like jdeb & rat are not technically "test" jars but I decided it was 
better to put them there and keep things simple than have a large number of 
configurations because that's confusing. The "default" jars are mapped to the 
"compile" maven scope when generating the pom file, so things work roughly as 
you would expect when depending on hcatalog-core.jar.

ivy/libraries.properties

Add maven-ant-tasks, which we use to publish jars in the local repo. We'll also 
use these when publishing to the central repo.

storage-handlers/build.xml

Mainly classpath stuff, and deleting a bunch of ivy tasks that are now 
consolidated into dependencies.xml.

 storage-handlers/hbase/ivy.xml

Again a really simplified dependencies file now that we can depend on 
hcatalog-core.jar.


This addresses bug HCATALOG-450.
    https://issues.apache.org/jira/browse/HCATALOG-450


Diffs
-----

  ant/dependencies.xml PRE-CREATION 
  ant/deploy.xml PRE-CREATION 
  build-common-new.xml e0cf142 
  build-common.xml 16f65fc 
  build.xml 8ef2035 
  hcatalog-pig-adapter/build.xml a281a0b 
  hcatalog-pig-adapter/ivy.xml 6b6cb8d 
  ivy.xml cf4b7d2 
  ivy/libraries.properties 0290dc3 
  storage-handlers/build.xml 6777ce8 
  storage-handlers/hbase/build.xml 8a2420a 
  storage-handlers/hbase/ivy.xml d624ef9 

Diff: https://reviews.apache.org/r/6012/diff/


Testing
-------


Thanks,

Travis Crawford

Reply via email to