Hi All,

I'm attempting to build a Nutch plugin on Nutch 1.7 with some external
dependencies. The way I've handled this in the past is to just put the
dependencies in lib/ and be done with it. However, now I have some
dependencies that are newer versions of dependencies already present in
Nutch. For example, I'm using the Apache httpclient-4.2.5.jar library
whereas Nutch appears to use httpclient-4.1.2 and httpclient-4.1.3.
Unfortunately, I do need the plugin to compile and run with my version (I
can't just downgrade, not a valid solution).

I've added the necessary jars to my plugin's ivy.xml and they download just
fine and the plugin compiles, which is wonderful. However, when I go to run
it (in local mode) I get "Exception in thread "main"
java.lang.NoClassDefFoundError:
org/apache/http/client/utils/URLEncodedUtils". Moving my own later versions
of the file to the ClassPath in runtime/local/lib/ gives me additional
issues - "Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.http.client.utils.URLEncodedUtils.parse" which appears to be an
error caused by Nutch trying to use an older version of the httpclient
library (it disappears if I remove the "older" jars from the classpath).

My question is - how would I go about adding these dependencies such that
my plugin would use these jars and I'm not having to remove libraries that
Nutch may need? I believe I'm missing a critical step here or a missing
directive in one of the plugin XML directive files... any  ideas?

Thanks!

Alex

Reply via email to