Can you share the change with me so I can debug? On Dec 9, 2013 5:15 PM, "Alan Gates" <ga...@hortonworks.com> wrote:
> I was attempting to write unit tests for changes I'm making to > HiveMetaStoreClient as part of the ACID transaction work (see > https://issues.apache.org/jira/browse/HIVE-5843). When I added the tests > and attempted to run them using > mvn tests -Dtest=TestHiveMetaStoreClient -Phadoop-1 > > it failed with: > > java.lang.NoClassDefFoundError: > org/apache/hadoop/hive/thrift/TUGIContainingTransport$Factory > > This class is contained in the hive-shims jar. The error surprised me > because according to metastore/pom.xml, hive-shims is a dependency of > hive-metastore. When I ran maven with -X to get debug information, I found > that in the classpath it was including > /Users/gates/git/apache/hive/shims/assembly/target/classes. I'm guessing > that rather than use the shims jar (which has been built by this time) it's > trying to use the compiled classes, but failing in this case because the > shims jar is actually constructed not by directly conglomerating a set of > class files but by picking and choosing from several shim jar versions and > then constructing a single jar. But I could not figure out how to > communicate to maven that is should use the already built shims jar rather > than the classes. To test my theory I took the shims jar and unpacked in > the path maven was looking in, and sure enough my tests ran once I did that. > > The existing unit test TestMetastoreExpr in ql seems to have the same > issue. I tried to use it as a model, but when I ran it it failed with the > same error, and unpacking the jar resolved it in the same way. > > Am I doing something wrong, or is there a change needed in the pom.xml to > get it to look in the jar instead of the .class files for shims > dependencies? > > Alan. > -- > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity to > which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You. >