To my knowledge, the easiest way to make a dependency optional is to put
the code depending on it in a separate module.
A compromise is to make the jackson dependency optional (see
https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html).
This will require jackson to build the project, but it will not include
it in the transitional dependencies of uimaj. People needing JSON
support will have to declare the jackson dependency explicitly.
Personally, I would prefer a separate module.
Hope this help,
Alexandre
On 14-09-18 05:06 PM, Marshall Schor wrote:
The Jackson Jars are not needed (in the binary distribution), if you do not want
the JSON support. So this may not be an issue for consumers of UIMA - they
could just delete the Jackson Jar if they don't need it, from our "convenience"
binary packaging (I would hope we wouldn't need to provide 2 binary packages -
one with and one without...)
But I see a possible issue for developers, etc. building from source using
Eclipse or Maven; I agree it would be good to allow builds to succeed with and
without the Jackson jars, with the "without" case of course not running the JSON
test cases.
Anyone know how to make that happen? I hope someone can think up a nice
approach :-)
-Marshall
On 9/18/2014 11:52 AM, Richard Eckart de Castilho wrote:
Hi,
I have noticed that the new JSON support also introduces a new dependency on
jackson in uimaj-core.
I wonder if that is a good idea since our users might need to get extra
permission from their legal
departments to use the new library when they want to upgrade. Would it be
reasonable to maintain
the JSON support in a separate module? Given the kind of very deep integration
that the JSON
support appears to have, this might not even be easily possible.
What do you think?
Cheers,
-- Richard
--
Alexandre Patry, Ph.D
Chercheur / Researcher
http://KeaText.com